Skip to main content

turbopack_css/
lib.rs

1#![feature(min_specialization)]
2#![feature(arbitrary_self_types)]
3#![feature(arbitrary_self_types_pointers)]
4
5mod asset;
6pub mod chunk;
7mod code_gen;
8pub mod embed;
9mod lifetime_util;
10mod module_asset;
11pub(crate) mod process;
12pub(crate) mod references;
13
14use bincode::{Decode, Encode};
15use turbo_tasks::{NonLocalValue, TaskInput, trace::TraceRawVcs};
16
17use crate::references::import::ImportAssetReference;
18pub use crate::{asset::CssModule, module_asset::EcmascriptCssModule, process::*};
19
20#[derive(
21    PartialOrd,
22    Ord,
23    Eq,
24    PartialEq,
25    Hash,
26    Debug,
27    Copy,
28    Clone,
29    Default,
30    TaskInput,
31    TraceRawVcs,
32    NonLocalValue,
33    Encode,
34    Decode,
35)]
36pub enum CssModuleType {
37    /// Default parsing mode.
38    #[default]
39    Default,
40    /// The CSS is parsed as CSS modules.
41    Module,
42}
43
44/// User-specified lightningcss feature flags (from `experimental.lightningCssFeatures`).
45///
46/// Both fields are raw `Features` bitmasks. `include` bits are OR-ed into the
47/// default feature set; `exclude` bits are masked off.
48#[turbo_tasks::value(shared, serialization = "auto")]
49#[derive(PartialOrd, Ord, Hash, Copy, Clone, Debug, Default, TaskInput)]
50pub struct LightningCssFeatureFlags {
51    pub include: u32,
52    pub exclude: u32,
53}