Home / File/ arbitrary_property_machine.rs — tailwindcss Source File

arbitrary_property_machine.rs — tailwindcss Source File

Architecture documentation for arbitrary_property_machine.rs, a rust file in the tailwindcss codebase. 10 imports, 0 dependents.

File rust OxideEngine Extractor 10 imports 8 functions

Entity Profile

Dependency Diagram

graph LR
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22["arbitrary_property_machine.rs"]
  5d977ab3_eccc_64dd_6684_ec779f8861bb["super::"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 5d977ab3_eccc_64dd_6684_ec779f8861bb
  e4e20bdf_ad1e_e4a0_5cba_d0f5a5db787e["crate::cursor"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> e4e20bdf_ad1e_e4a0_5cba_d0f5a5db787e
  94b5420b_055c_efe5_392d_b0d15e43aa35["crate::extractor::bracket_stack::BracketStack"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 94b5420b_055c_efe5_392d_b0d15e43aa35
  cd83abb6_a664_e16d_ddc8_60a3f23ba86a["crate::extractor::machine::"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> cd83abb6_a664_e16d_ddc8_60a3f23ba86a
  9dfad5b5_43fe_bf7b_3e43_8f94b15347c9["crate::extractor::string_machine::StringMachine"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 9dfad5b5_43fe_bf7b_3e43_8f94b15347c9
  4235cbff_84ac_7232_517f_fa37b402eebd["crate::extractor::CssVariableMachine"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 4235cbff_84ac_7232_517f_fa37b402eebd
  5731c53a_0325_b3af_2918_bcb379bc8ec6["classification_macros::ClassifyBytes"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 5731c53a_0325_b3af_2918_bcb379bc8ec6
  8c86990d_3557_b3a2_1d12_d17da0d3fa51["std::marker::PhantomData"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 8c86990d_3557_b3a2_1d12_d17da0d3fa51
  9a9673b5_10d4_f716_360c_b2510082b102["crate::extractor::machine::Machine"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> 9a9673b5_10d4_f716_360c_b2510082b102
  e4088d34_b5b4_ec51_b975_557a1536ec76["pretty_assertions::assert_eq"]
  a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 --> e4088d34_b5b4_ec51_b975_557a1536ec76
  style a0fb7bf4_10a9_c73e_1f40_d9fa8257af22 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

use crate::cursor;
use crate::extractor::bracket_stack::BracketStack;
use crate::extractor::machine::{Machine, MachineState};
use crate::extractor::string_machine::StringMachine;
use crate::extractor::CssVariableMachine;
use classification_macros::ClassifyBytes;
use std::marker::PhantomData;

#[derive(Debug, Default)]
pub struct IdleState;

/// Parsing the property, e.g.:
///
/// ```text
/// [color:red]
///  ^^^^^
///
/// [--my-color:red]
///  ^^^^^^^^^^
/// ```
#[derive(Debug, Default)]
pub struct ParsingPropertyState;

/// Parsing the value, e.g.:
///
/// ```text
/// [color:red]
///        ^^^
/// ```
#[derive(Debug, Default)]
pub struct ParsingValueState;

/// Extracts arbitrary properties from the input, including the brackets.
///
/// E.g.:
///
/// ```text
/// [color:red]
/// ^^^^^^^^^^^
///
/// [--my-color:red]
/// ^^^^^^^^^^^^^^^^
/// ```
#[derive(Debug, Default)]
pub struct ArbitraryPropertyMachine<State = IdleState> {
    /// Start position of the arbitrary value
    start_pos: usize,

    /// Track brackets to ensure they are balanced
    bracket_stack: BracketStack,

    css_variable_machine: CssVariableMachine,
    string_machine: StringMachine,

    _state: PhantomData<State>,
}

impl<State> ArbitraryPropertyMachine<State> {
    #[inline(always)]
    fn transition<NextState>(&self) -> ArbitraryPropertyMachine<NextState> {
// ... (398 more lines)

Domain

Subdomains

Dependencies

  • classification_macros::ClassifyBytes
  • crate::cursor
  • crate::extractor::CssVariableMachine
  • crate::extractor::bracket_stack::BracketStack
  • crate::extractor::machine::
  • crate::extractor::machine::Machine
  • crate::extractor::string_machine::StringMachine
  • pretty_assertions::assert_eq
  • std::marker::PhantomData
  • super::

Frequently Asked Questions

What does arbitrary_property_machine.rs do?
arbitrary_property_machine.rs is a source file in the tailwindcss codebase, written in rust. It belongs to the OxideEngine domain, Extractor subdomain.
What functions are defined in arbitrary_property_machine.rs?
arbitrary_property_machine.rs defines 8 function(s): next, parse_property_variable, parse_string, reset, test_arbitrary_property_machine_extraction, test_arbitrary_property_machine_performance, test_exceptions, transition.
What does arbitrary_property_machine.rs depend on?
arbitrary_property_machine.rs imports 10 module(s): classification_macros::ClassifyBytes, crate::cursor, crate::extractor::CssVariableMachine, crate::extractor::bracket_stack::BracketStack, crate::extractor::machine::, crate::extractor::machine::Machine, crate::extractor::string_machine::StringMachine, pretty_assertions::assert_eq, and 2 more.
Where is arbitrary_property_machine.rs in the architecture?
arbitrary_property_machine.rs is located at crates/oxide/src/extractor/arbitrary_property_machine.rs (domain: OxideEngine, subdomain: Extractor, directory: crates/oxide/src/extractor).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free