main.rs — tailwindcss Source File
Architecture documentation for main.rs, a rust file in the tailwindcss codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 48f149e2_8fcb_0b5b_3534_271de67551bb["main.rs"] cc79870b_65f6_c4e5_bd7d_4f3d41ad1300["std::hint::black_box"] 48f149e2_8fcb_0b5b_3534_271de67551bb --> cc79870b_65f6_c4e5_bd7d_4f3d41ad1300 fcc5ba42_881a_552b_f5b2_7195fbf0b98e["tailwindcss_oxide::cursor::Cursor"] 48f149e2_8fcb_0b5b_3534_271de67551bb --> fcc5ba42_881a_552b_f5b2_7195fbf0b98e 5419476a_158d_fa04_6126_0ed4f4ce1b52["tailwindcss_oxide::extractor::machine::"] 48f149e2_8fcb_0b5b_3534_271de67551bb --> 5419476a_158d_fa04_6126_0ed4f4ce1b52 03d24609_2d23_4b44_d093_0af411ef73ca["tailwindcss_oxide::extractor::"] 48f149e2_8fcb_0b5b_3534_271de67551bb --> 03d24609_2d23_4b44_d093_0af411ef73ca 113e3321_abc8_5276_0b34_0b0ebddba5a7["tailwindcss_oxide::throughput::Throughput"] 48f149e2_8fcb_0b5b_3534_271de67551bb --> 113e3321_abc8_5276_0b34_0b0ebddba5a7 style 48f149e2_8fcb_0b5b_3534_271de67551bb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
use std::hint::black_box;
use tailwindcss_oxide::cursor::Cursor;
use tailwindcss_oxide::extractor::machine::{Machine, MachineState};
use tailwindcss_oxide::extractor::{Extracted, Extractor};
use tailwindcss_oxide::throughput::Throughput;
fn run_full_extractor(input: &[u8]) -> Vec<&[u8]> {
Extractor::new(input)
.extract()
.into_iter()
.map(|x| match x {
Extracted::Candidate(bytes) => bytes,
Extracted::CssVariable(bytes) => bytes,
})
.collect::<Vec<_>>()
}
fn _run_machine<T: Machine>(input: &[u8]) -> Vec<&[u8]> {
let len = input.len();
let mut machine = T::default();
let mut cursor = Cursor::new(input);
let mut result = Vec::with_capacity(25);
while cursor.pos < len {
if let MachineState::Done(span) = machine.next(&mut cursor) {
result.push(span.slice(input));
}
cursor.advance();
}
result
}
fn run(input: &[u8]) -> Vec<&[u8]> {
// _run_machine::<tailwindcss_oxide::extractor::arbitrary_property_machine::ArbitraryPropertyMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::arbitrary_value_machine::ArbitraryValueMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::arbitrary_variable_machine::ArbitraryVariableMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::candidate_machine::CandidateMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::css_variable_machine::CssVariableMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::modifier_machine::ModifierMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::named_utility_machine::NamedUtilityMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::named_variant_machine::NamedVariantMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::string_machine::StringMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::utility_machine::UtilityMachine>(input)
// _run_machine::<tailwindcss_oxide::extractor::variant_machine::VariantMachine>(input)
run_full_extractor(input)
}
fn main() {
let iterations = 10_000;
let input = include_bytes!("./fixtures/example.html");
let throughput = Throughput::compute(iterations, input.len(), || {
_ = black_box(
input
.split(|x| *x == b'\n')
.flat_map(run)
.collect::<Vec<_>>(),
);
});
eprintln!("Extractor: {:}", throughput);
}
Domain
Subdomains
Dependencies
- std::hint::black_box
- tailwindcss_oxide::cursor::Cursor
- tailwindcss_oxide::extractor::
- tailwindcss_oxide::extractor::machine::
- tailwindcss_oxide::throughput::Throughput
Source
Frequently Asked Questions
What does main.rs do?
main.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 main.rs?
main.rs defines 4 function(s): _run_machine, main, run, run_full_extractor.
What does main.rs depend on?
main.rs imports 5 module(s): std::hint::black_box, tailwindcss_oxide::cursor::Cursor, tailwindcss_oxide::extractor::, tailwindcss_oxide::extractor::machine::, tailwindcss_oxide::throughput::Throughput.
Where is main.rs in the architecture?
main.rs is located at crates/oxide/src/main.rs (domain: OxideEngine, subdomain: Extractor, directory: crates/oxide/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free