moon_wgsl_naga

    Naga compatibility utilities for MoonBit WGSL.

    wgsl
    naga
    shader
    Download zip
    Author
    Version
    0.17.2
    License
    Apache-2.0
    Last updated
    3 hours ago
    Downloads
    165

    Dependencies

    #Milky2018/moon_wgsl_naga

    Naga-compatible WGSL utilities for MoonBit.

    This module is the public boundary for compatibility writer behavior used by parity and composer pipelines. It depends on Milky2018/wgsl and exposes Naga-shaped roundtrip and trace entry points without requiring users to import the facade module.

    Use this module when you need writer/order/name compatibility checks or diagnostic traces. Use Milky2018/wgsl for the language frontend itself and Milky2018/moon_wgsl_naga_oil for naga-oil preprocessing and composition.

    The writer reuses WGSL Core's neutral reachability, expression-type, and type spelling services through narrow interfaces. This module still owns the compatibility view, arena ordering, final names, temporary scheduling, byte policy, and trace behavior; no writer source is shared through filesystem links or copied neutral implementations.

    WgslNagaPipelineError

    pub suberror WgslNagaPipelineError {
    Lower(String)
    UnknownIdentifier(String)
    Emit(String)
    Validate(String)
    }

    WgslNagaPipelineError::message

    fn WgslNagaPipelineError::message(self : WgslNagaPipelineError) -> String

    WgslNagaComposeContext

    pub struct WgslNagaComposeContext {
    // private fields
    }

    WgslNagaComposeContext::empty

    WgslNagaComposeContext::from_import_graph

    fn WgslNagaComposeContext::from_import_graph(generated_import_provenance : Array[WgslNagaGeneratedImportProvenance], import_arena_events : Array[WgslNagaImportArenaEvent], root_visible_rel_path? : String) -> WgslNagaComposeContext

    WgslNagaDeclarationKind

    pub(all) enum WgslNagaDeclarationKind {
    Type
    Constant
    Override
    GlobalVariable
    Function
    } derive(Eq,
    Debug
    )

    WgslNagaDeclarationKind::equal

    WgslNagaDeclarationKind::not_equal

    WgslNagaGeneratedImportProvenance

    pub(all) struct WgslNagaGeneratedImportProvenance {
    generated_symbol_name : String
    rel_path : String
    source_symbol_name : String
    kind : WgslNagaGeneratedImportProvenanceKind
    inline_value : Bool
    local_spelling : Bool
    root_local_spelling : Bool
    local_spelling_visible_rel_paths : Array[String]
    import_sequence : Int
    source_start : Int
    source_end : Int
    composed_source_start : Int
    } derive(Eq,
    Debug
    )

    WgslNagaGeneratedImportProvenance::WgslNagaGeneratedImportProvenance

    fn WgslNagaGeneratedImportProvenance::WgslNagaGeneratedImportProvenance(generated_symbol_name : String, rel_path : String, source_symbol_name : String, kind : WgslNagaGeneratedImportProvenanceKind, inline_value : Bool, local_spelling? : Bool, root_local_spelling? : Bool, local_spelling_visible_rel_paths? : Array[String], import_sequence? : Int, source_start? : Int, source_end? : Int, composed_source_start? : Int) -> WgslNagaGeneratedImportProvenance

    WgslNagaGeneratedImportProvenance::generated_symbol_name

    fn WgslNagaGeneratedImportProvenance::generated_symbol_name(self : WgslNagaGeneratedImportProvenance) -> String

    WgslNagaGeneratedImportProvenance::not_equal

    WgslNagaGeneratedImportProvenanceKind

    pub(all) enum WgslNagaGeneratedImportProvenanceKind {
    ImportedSourceSymbol
    VirtualOverrideSymbol
    } derive(Eq,
    Debug
    )

    WgslNagaImportArenaEvent

    pub struct WgslNagaImportArenaEvent {
    // private fields
    } derive(Eq,
    Debug
    )

    WgslNagaImportArenaEvent::WgslNagaImportArenaEvent

    fn WgslNagaImportArenaEvent::WgslNagaImportArenaEvent(sequence : Int, importer_rel_path : String, target_rel_path : String, module_path : String, alias_name : String, item_names : Array[String], kind : WgslNagaImportEdgeKind, generated_symbols : Array[WgslNagaImportArenaSymbol]) -> WgslNagaImportArenaEvent

    WgslNagaImportArenaEvent::alias_name

    fn WgslNagaImportArenaEvent::alias_name(self : WgslNagaImportArenaEvent) -> String

    WgslNagaImportArenaEvent::equal

    WgslNagaImportArenaEvent::generated_symbols

    WgslNagaImportArenaEvent::importer_rel_path

    fn WgslNagaImportArenaEvent::importer_rel_path(self : WgslNagaImportArenaEvent) -> String

    WgslNagaImportArenaEvent::item_names

    fn WgslNagaImportArenaEvent::item_names(self : WgslNagaImportArenaEvent) -> Array[String]

    WgslNagaImportArenaEvent::kind

    WgslNagaImportArenaEvent::module_path

    fn WgslNagaImportArenaEvent::module_path(self : WgslNagaImportArenaEvent) -> String

    WgslNagaImportArenaEvent::not_equal

    WgslNagaImportArenaEvent::sequence

    WgslNagaImportArenaEvent::target_rel_path

    fn WgslNagaImportArenaEvent::target_rel_path(self : WgslNagaImportArenaEvent) -> String

    WgslNagaImportArenaSymbol

    pub struct WgslNagaImportArenaSymbol {
    // private fields
    } derive(Eq,
    Debug
    )

    WgslNagaImportArenaSymbol::WgslNagaImportArenaSymbol

    fn WgslNagaImportArenaSymbol::WgslNagaImportArenaSymbol(kind : WgslNagaDeclarationKind, source_symbol_name : String, generated_symbol_name : String, source_decl_rank? : Int, source_order_rank? : Int) -> WgslNagaImportArenaSymbol

    WgslNagaImportArenaSymbol::equal

    WgslNagaImportArenaSymbol::generated_symbol_name

    fn WgslNagaImportArenaSymbol::generated_symbol_name(self : WgslNagaImportArenaSymbol) -> String

    WgslNagaImportArenaSymbol::kind

    WgslNagaImportArenaSymbol::not_equal

    WgslNagaImportArenaSymbol::source_decl_rank

    fn WgslNagaImportArenaSymbol::source_decl_rank(self : WgslNagaImportArenaSymbol) -> Int

    WgslNagaImportArenaSymbol::source_order_rank

    fn WgslNagaImportArenaSymbol::source_order_rank(self : WgslNagaImportArenaSymbol) -> Int

    WgslNagaImportArenaSymbol::source_symbol_name

    fn WgslNagaImportArenaSymbol::source_symbol_name(self : WgslNagaImportArenaSymbol) -> String

    WgslNagaImportEdgeKind

    pub(all) enum WgslNagaImportEdgeKind {
    FullModule
    AliasModule
    ItemBinding
    } derive(Eq,
    Debug
    )

    WgslNagaImportEdgeKind::equal

    WgslNagaImportEdgeKind::not_equal

    WgslNagaPipelineOptions

    pub(all) struct WgslNagaPipelineOptions {
    compat_writer : Bool
    entry_roots : Bool
    }

    WgslNagaPipelineOptions::compat

    WgslNagaPipelineOptions::default

    WgslNagaPipelineOptions::runtime

    roundtrip_wgsl_compose_source

    fn roundtrip_wgsl_compose_source(source : String, context : WgslNagaComposeContext, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    roundtrip_wgsl_source

    fn roundtrip_wgsl_source(source : String, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    trace_writer_compose_function_plan

    fn trace_writer_compose_function_plan(source : String, function_name_prefix : String, context : WgslNagaComposeContext, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    trace_writer_compose_module_plan

    fn trace_writer_compose_module_plan(source : String, context : WgslNagaComposeContext, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    trace_writer_function_plan

    fn trace_writer_function_plan(source : String, function_name_prefix : String, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    trace_writer_module_plan

    fn trace_writer_module_plan(source : String, options? : WgslNagaPipelineOptions) -> String raise WgslNagaPipelineError

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io