moon_wgsl_naga

Naga compatibility utilities for MoonBit WGSL.

wgsl
naga
shader
moon add Milky2018/moon_wgsl_naga@0.17.0
Download zip
Author
Version
0.17.0
License
Apache-2.0
Last updated
26 days ago
Downloads
151

Dependencies

README

#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
)

#
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

#
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::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::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::generated_symbol_name

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

#
WgslNagaImportArenaSymbol::kind

#
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
)

#
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