tailwind_rs_postcss/
transformer.rs1use crate::ast::CSSNode;
6use crate::error::Result;
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone)]
11pub struct CSSTransformer {
12 options: TransformOptions,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct TransformOptions {
18 pub optimize: bool,
20 pub vendor_prefixes: bool,
22 pub flatten_nesting: bool,
24 pub resolve_custom_properties: bool,
26}
27
28impl Default for TransformOptions {
29 fn default() -> Self {
30 Self {
31 optimize: true,
32 vendor_prefixes: false,
33 flatten_nesting: true,
34 resolve_custom_properties: true,
35 }
36 }
37}
38
39impl CSSTransformer {
40 pub fn new(options: TransformOptions) -> Self {
42 Self { options }
43 }
44
45 pub fn transform(&self, ast: CSSNode) -> Result<CSSNode> {
47 Ok(ast)
50 }
51}
52
53#[cfg(test)]
54mod tests {
55 use super::*;
56
57 #[test]
58 fn test_transformer_creation() {
59 let options = TransformOptions::default();
60 let transformer = CSSTransformer::new(options);
61 assert!(transformer.options.optimize);
62 }
63}