Home / File/ main.rs — tailwindcss Source File

main.rs — tailwindcss Source File

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

File rust OxideEngine Extractor 5 imports 4 functions

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

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