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};
15
16use crate::references::import::ImportAssetReference;
17pub use crate::{asset::CssModule, module_asset::EcmascriptCssModule, process::*};
18
19#[turbo_tasks::task_input]
20#[derive(PartialOrd, Ord, Eq, PartialEq, Hash, Debug, Copy, Clone, Default, Encode, Decode)]
21pub enum CssModuleType {
22    /// Default parsing mode.
23    #[default]
24    Default,
25    /// The CSS is parsed as CSS modules.
26    Module,
27}
28
29/// User-specified lightningcss feature flags (from `experimental.lightningCssFeatures`).
30///
31/// Both fields are raw `Features` bitmasks. `include` bits are OR-ed into the
32/// default feature set; `exclude` bits are masked off.
33#[turbo_tasks::value(shared, serialization = "auto", task_input)]
34#[derive(PartialOrd, Ord, Hash, Copy, Clone, Debug, Default)]
35pub struct LightningCssFeatureFlags {
36    pub include: u32,
37    pub exclude: u32,
38}