utility_machine.rs — tailwindcss Source File
Architecture documentation for utility_machine.rs, a rust file in the tailwindcss codebase. 9 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR c2694403_f71b_203e_2a58_1a52ee990fa7["utility_machine.rs"] 4d94befc_36da_8e4a_fe29_d3a280febebd["super::UtilityMachine"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 4d94befc_36da_8e4a_fe29_d3a280febebd 96a36755_a007_15e1_ec6c_526c02d24b9b["crate::cursor"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 96a36755_a007_15e1_ec6c_526c02d24b9b d6ce4261_71d7_ca6f_14f8_e1de7c1cac44["crate::extractor::arbitrary_property_machine::ArbitraryPropertyMachine"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> d6ce4261_71d7_ca6f_14f8_e1de7c1cac44 05907c18_a40e_a5a9_c7c3_5faba98e1e87["crate::extractor::machine::"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 05907c18_a40e_a5a9_c7c3_5faba98e1e87 a9543d97_3c7c_6fd9_c321_31e9bf0f6c55["crate::extractor::modifier_machine::ModifierMachine"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> a9543d97_3c7c_6fd9_c321_31e9bf0f6c55 809d09fe_6668_dfc3_6bc3_d88ac1f02e6b["crate::extractor::named_utility_machine::NamedUtilityMachine"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 809d09fe_6668_dfc3_6bc3_d88ac1f02e6b 7a907858_c7d2_db19_0e89_e3d1d2242e48["classification_macros::ClassifyBytes"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 7a907858_c7d2_db19_0e89_e3d1d2242e48 4d153f79_f78b_b66c_1e8a_11a0eb99bd41["crate::extractor::machine::Machine"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 4d153f79_f78b_b66c_1e8a_11a0eb99bd41 433675ca_8d0e_feff_42a5_b3f666878cca["pretty_assertions::assert_eq"] c2694403_f71b_203e_2a58_1a52ee990fa7 --> 433675ca_8d0e_feff_42a5_b3f666878cca style c2694403_f71b_203e_2a58_1a52ee990fa7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
use crate::cursor;
use crate::extractor::arbitrary_property_machine::ArbitraryPropertyMachine;
use crate::extractor::machine::{Machine, MachineState};
use crate::extractor::modifier_machine::ModifierMachine;
use crate::extractor::named_utility_machine::NamedUtilityMachine;
use classification_macros::ClassifyBytes;
#[derive(Debug, Default)]
pub struct UtilityMachine {
/// Start position of the utility
start_pos: usize,
/// Whether the legacy important marker `!` was used
legacy_important: bool,
arbitrary_property_machine: ArbitraryPropertyMachine,
named_utility_machine: NamedUtilityMachine,
modifier_machine: ModifierMachine,
}
impl Machine for UtilityMachine {
#[inline(always)]
fn reset(&mut self) {
self.start_pos = 0;
self.legacy_important = false;
}
#[inline]
fn next(&mut self, cursor: &mut cursor::Cursor<'_>) -> MachineState {
match cursor.curr.into() {
// LEGACY: Important marker
Class::Exclamation => {
self.legacy_important = true;
match cursor.next.into() {
// Start of an arbitrary property
//
// E.g.: `![color:red]`
// ^
Class::OpenBracket => {
self.start_pos = cursor.pos;
cursor.advance();
self.parse_arbitrary_property(cursor)
}
// Start of a named utility
//
// E.g.: `!flex`
// ^
_ => {
self.start_pos = cursor.pos;
cursor.advance();
self.parse_named_utility(cursor)
}
}
}
// Start of an arbitrary property
//
// E.g.: `[color:red]`
// ... (287 more lines)
Domain
Subdomains
Functions
Dependencies
- classification_macros::ClassifyBytes
- crate::cursor
- crate::extractor::arbitrary_property_machine::ArbitraryPropertyMachine
- crate::extractor::machine::
- crate::extractor::machine::Machine
- crate::extractor::modifier_machine::ModifierMachine
- crate::extractor::named_utility_machine::NamedUtilityMachine
- pretty_assertions::assert_eq
- super::UtilityMachine
Source
Frequently Asked Questions
What does utility_machine.rs do?
utility_machine.rs is a source file in the tailwindcss codebase, written in rust. It belongs to the Oxide domain, Extractor subdomain.
What functions are defined in utility_machine.rs?
utility_machine.rs defines 8 function(s): next, parse_arbitrary_property, parse_important, parse_modifier, parse_named_utility, reset, test_utility_extraction, test_utility_machine_performance.
What does utility_machine.rs depend on?
utility_machine.rs imports 9 module(s): classification_macros::ClassifyBytes, crate::cursor, crate::extractor::arbitrary_property_machine::ArbitraryPropertyMachine, crate::extractor::machine::, crate::extractor::machine::Machine, crate::extractor::modifier_machine::ModifierMachine, crate::extractor::named_utility_machine::NamedUtilityMachine, pretty_assertions::assert_eq, and 1 more.
Where is utility_machine.rs in the architecture?
utility_machine.rs is located at crates/oxide/src/extractor/utility_machine.rs (domain: Oxide, 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