Sign in

    Milky2018/wgsl/ir does not have a README file

    WgslIrLowerError

    pub suberror WgslIrLowerError {
    Parse(String)
    MissingType(String)
    UnsupportedType(String)
    UnsupportedExpression(String)
    UnsupportedStatement(String)
    UnknownIdentifier(String)
    }

    WgslIrLowerError::message

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

    WgslIrPipelineError

    pub suberror WgslIrPipelineError {
    Lower(String)
    UnknownIdentifier(String)
    Emit(String)
    Validate(String)
    Reparse(String)
    }

    WgslIrPipelineError::message

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

    WgslIrTypeSpellingError

    pub suberror WgslIrTypeSpellingError {
    MissingType(Int)
    MissingTypeName(Int)
    MissingGlobalExpression(Int)
    UnsupportedTypeSpelling(String)
    }

    WgslIrTypeSpellingError::message

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

    WgslIrValidationError

    pub suberror WgslIrValidationError {
    InvalidTypeHandle(Int)
    InvalidConstantHandle(Int)
    InvalidOverrideHandle(Int)
    InvalidGlobalVariableHandle(Int)
    InvalidGlobalExpressionHandle(Int)
    InvalidFunctionHandle(Int)
    InvalidLocalVariableHandle(Int)
    InvalidFunctionExpressionHandle(Int)
    InvalidHandleRange(Int, Int)
    InvalidEntryPoint(String)
    MissingExpressionType(Int, String)
    InvalidConditionType(String, Int, String, String)
    InvalidStoreTarget(Int)
    InvalidReturnValue(String)
    InvalidFunctionArgumentCount(String, Int, Int)
    InvalidFunctionArgumentType(String, Int)
    InvalidFunctionResult(String)
    InvalidType(String)
    InvalidGlobalVariable(String)
    InvalidExpression(String, Int)
    InvalidStatement(String)
    }

    WgslIrValidationError::message

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

    AddressSpace

    pub(all) enum AddressSpace {
    Function
    Private
    WorkGroup
    Uniform
    Storage(StorageAccess)
    Handle
    Immediate
    TaskPayload
    RayPayload
    IncomingRayPayload
    } derive(Eq,
    Debug
    )

    AddressSpace::equal

    AddressSpace::not_equal

    fn AddressSpace::not_equal(x : AddressSpace, y : AddressSpace) -> Bool

    ArraySize

    pub(all) enum ArraySize {
    Constant(Int)
    Pending(Handle)
    Dynamic
    } derive(Eq,
    Debug
    )

    ArraySize::equal

    fn ArraySize::equal(ArraySize, ArraySize) -> Bool

    ArraySize::not_equal

    fn ArraySize::not_equal(x : ArraySize, y : ArraySize) -> Bool

    AtomicFunction

    pub(all) enum AtomicFunction {
    Load
    Store
    Add
    Subtract
    And
    ExclusiveOr
    InclusiveOr
    Min
    Max
    Exchange
    CompareExchangeWeak
    } derive(Eq,
    Debug
    )

    AtomicFunction::equal

    AtomicFunction::not_equal

    fn AtomicFunction::not_equal(x : AtomicFunction, y : AtomicFunction) -> Bool

    Barrier

    pub(all) struct Barrier {
    bits : Int
    } derive(Eq,
    Debug
    )

    Barrier::empty

    fn Barrier::empty() -> Barrier

    Barrier::equal

    fn Barrier::equal(Barrier, Barrier) -> Bool

    Barrier::not_equal

    fn Barrier::not_equal(x : Barrier, y : Barrier) -> Bool

    Barrier::storage

    fn Barrier::storage() -> Barrier

    Barrier::sub_group

    fn Barrier::sub_group() -> Barrier

    Barrier::texture

    fn Barrier::texture() -> Barrier

    Barrier::to_repr

    Barrier::union

    fn Barrier::union(self : Barrier, other : Barrier) -> Barrier

    Barrier::work_group

    fn Barrier::work_group() -> Barrier

    BinaryOperator

    pub(all) enum BinaryOperator {
    Add
    Subtract
    Multiply
    Divide
    Modulo
    Equal
    NotEqual
    Less
    LessEqual
    Greater
    GreaterEqual
    And
    ExclusiveOr
    InclusiveOr
    LogicalAnd
    LogicalOr
    ShiftLeft
    ShiftRight
    } derive(Eq,
    Debug
    )

    BinaryOperator::equal

    BinaryOperator::not_equal

    fn BinaryOperator::not_equal(x : BinaryOperator, y : BinaryOperator) -> Bool

    Binding

    pub(all) enum Binding {
    BuiltIn(BuiltIn)
    Location(Int, Interpolation?, Sampling?, Int?, Bool)
    } derive(Eq,
    Debug
    )

    Binding::equal

    fn Binding::equal(Binding, Binding) -> Bool

    Binding::not_equal

    fn Binding::not_equal(x : Binding, y : Binding) -> Bool

    Binding::to_repr

    Block

    pub(all) struct Block {
    statements : Array[Statement]
    } derive(Eq,
    Debug
    )

    Block::Block

    fn Block::Block() -> Block

    Block::equal

    fn Block::equal(Block, Block) -> Bool

    Block::not_equal

    fn Block::not_equal(x : Block, y : Block) -> Bool

    Block::push

    fn Block::push(self : Block, statement : Statement) -> Unit

    Block::to_repr

    BuiltIn

    pub(all) enum BuiltIn {
    PrimitiveIndex
    Position(Bool)
    ViewIndex
    BaseInstance
    BaseVertex
    ClipDistances
    CullDistance
    InstanceIndex
    PointSize
    VertexIndex
    DrawIndex
    FragDepth
    PointCoord
    FrontFacing
    Barycentric(Bool)
    SampleIndex
    SampleMask
    GlobalInvocationId
    LocalInvocationId
    LocalInvocationIndex
    WorkGroupId
    WorkGroupSize
    NumWorkGroups
    NumSubgroups
    SubgroupId
    SubgroupSize
    SubgroupInvocationId
    MeshTaskSize
    CullPrimitive
    PointIndex
    LineIndices
    TriangleIndices
    VertexCount
    Vertices
    PrimitiveCount
    Primitives
    RayInvocationId
    NumRayInvocations
    InstanceCustomData
    GeometryIndex
    WorldRayOrigin
    WorldRayDirection
    ObjectRayOrigin
    ObjectRayDirection
    RayTmin
    RayTCurrentMax
    ObjectToWorld
    WorldToObject
    HitKind
    } derive(Eq,
    Debug
    )

    BuiltIn::equal

    fn BuiltIn::equal(BuiltIn, BuiltIn) -> Bool

    BuiltIn::not_equal

    fn BuiltIn::not_equal(x : BuiltIn, y : BuiltIn) -> Bool

    BuiltIn::to_repr

    CollectiveOperation

    pub(all) enum CollectiveOperation {
    Reduce
    InclusiveScan
    ExclusiveScan
    } derive(Eq,
    Debug
    )

    CollectiveOperation::equal

    CollectiveOperation::not_equal

    ConservativeDepth

    pub(all) enum ConservativeDepth {
    GreaterEqual
    LessEqual
    Unchanged
    } derive(Eq,
    Debug
    )

    ConservativeDepth::equal

    ConservativeDepth::not_equal

    fn ConservativeDepth::not_equal(x : ConservativeDepth, y : ConservativeDepth) -> Bool

    Constant

    pub(all) struct Constant {
    name : String?
    source_start : Int
    ty : Handle
    init : Handle
    } derive(Eq,
    Debug
    )

    Constant::equal

    fn Constant::equal(Constant, Constant) -> Bool

    Constant::not_equal

    fn Constant::not_equal(x : Constant, y : Constant) -> Bool

    Constant::to_repr

    ConstantArena

    pub(all) struct ConstantArena {
    items : Array[Constant]
    } derive(Eq,
    Debug
    )

    ConstantArena::ConstantArena

    fn ConstantArena::ConstantArena() -> ConstantArena

    ConstantArena::append

    fn ConstantArena::append(self : ConstantArena, item : Constant) -> Handle

    ConstantArena::equal

    ConstantArena::not_equal

    fn ConstantArena::not_equal(x : ConstantArena, y : ConstantArena) -> Bool

    CooperativeData

    pub(all) struct CooperativeData {
    pointer : Handle
    stride : Handle
    row_major : Bool
    } derive(Eq,
    Debug
    )

    CooperativeData::equal

    CooperativeData::not_equal

    fn CooperativeData::not_equal(x : CooperativeData, y : CooperativeData) -> Bool

    CooperativeRole

    pub(all) enum CooperativeRole {
    A
    B
    C
    } derive(Eq,
    Debug
    )

    CooperativeRole::equal

    CooperativeRole::not_equal

    fn CooperativeRole::not_equal(x : CooperativeRole, y : CooperativeRole) -> Bool

    CooperativeSize

    pub(all) enum CooperativeSize {
    Eight
    Sixteen
    } derive(Eq,
    Debug
    )

    CooperativeSize::equal

    CooperativeSize::not_equal

    fn CooperativeSize::not_equal(x : CooperativeSize, y : CooperativeSize) -> Bool

    DerivativeAxis

    pub(all) enum DerivativeAxis {
    X
    Y
    Width
    } derive(Eq,
    Debug
    )

    DerivativeAxis::equal

    DerivativeAxis::not_equal

    fn DerivativeAxis::not_equal(x : DerivativeAxis, y : DerivativeAxis) -> Bool

    DerivativeControl

    pub(all) enum DerivativeControl {
    Coarse
    Fine
    None
    } derive(Eq,
    Debug
    )

    DerivativeControl::equal

    DerivativeControl::not_equal

    fn DerivativeControl::not_equal(x : DerivativeControl, y : DerivativeControl) -> Bool

    DiagnosticFilter

    pub(all) struct DiagnosticFilter {
    new_severity : Severity
    triggering_rule : FilterableTriggeringRule
    } derive(Eq,
    Debug
    )

    DiagnosticFilter::equal

    DiagnosticFilter::not_equal

    fn DiagnosticFilter::not_equal(x : DiagnosticFilter, y : DiagnosticFilter) -> Bool

    DiagnosticFilterArena

    pub(all) struct DiagnosticFilterArena {
    items : Array[DiagnosticFilterNode]
    } derive(Eq,
    Debug
    )

    DiagnosticFilterArena::DiagnosticFilterArena

    fn DiagnosticFilterArena::DiagnosticFilterArena() -> DiagnosticFilterArena

    DiagnosticFilterArena::append

    DiagnosticFilterArena::equal

    DiagnosticFilterArena::not_equal

    DiagnosticFilterNode

    pub(all) struct DiagnosticFilterNode {
    inner : DiagnosticFilter
    parent : Handle?
    } derive(Eq,
    Debug
    )

    DiagnosticFilterNode::equal

    DiagnosticFilterNode::not_equal

    Direction

    pub(all) enum Direction {
    X
    Y
    Diagonal
    } derive(Eq,
    Debug
    )

    Direction::equal

    fn Direction::equal(Direction, Direction) -> Bool

    Direction::not_equal

    fn Direction::not_equal(x : Direction, y : Direction) -> Bool

    DocComments

    pub(all) struct DocComments {
    types : Array[(Handle, Array[String])]
    struct_members : Array[(Handle, Int, Array[String])]
    entry_points : Array[(Int, Array[String])]
    functions : Array[(Handle, Array[String])]
    constants : Array[(Handle, Array[String])]
    global_variables : Array[(Handle, Array[String])]
    module_comments : Array[String]
    } derive(Eq,
    Debug
    )

    DocComments::DocComments

    fn DocComments::DocComments() -> DocComments

    DocComments::equal

    fn DocComments::equal(DocComments, DocComments) -> Bool

    DocComments::not_equal

    fn DocComments::not_equal(x : DocComments, y : DocComments) -> Bool

    EarlyDepthTest

    pub(all) enum EarlyDepthTest {
    Force
    Allow(ConservativeDepth)
    } derive(Eq,
    Debug
    )

    EarlyDepthTest::equal

    EarlyDepthTest::not_equal

    fn EarlyDepthTest::not_equal(x : EarlyDepthTest, y : EarlyDepthTest) -> Bool

    EntryPoint

    pub(all) struct EntryPoint {
    name : String
    source_start : Int
    stage : ShaderStage
    early_depth_test : EarlyDepthTest?
    workgroup_size : Array[Int]
    workgroup_size_overrides : Array[Handle?]?
    function : Function
    mesh_info : MeshStageInfo?
    task_payload : Handle?
    incoming_ray_payload : Handle?
    } derive(Eq,
    Debug
    )

    EntryPoint::equal

    fn EntryPoint::equal(EntryPoint, EntryPoint) -> Bool

    EntryPoint::not_equal

    fn EntryPoint::not_equal(x : EntryPoint, y : EntryPoint) -> Bool

    Expression

    pub(all) enum Expression {
    Literal(Literal)
    Constant(Handle)
    Override(Handle)
    ZeroValue(Handle)
    Compose(Handle, Array[Handle])
    Access(Handle, Handle)
    AccessIndex(Handle, Int)
    Component(Handle, SwizzleComponent)
    Splat(VectorSize, Handle)
    Swizzle(VectorSize, Handle, Array[SwizzleComponent])
    FunctionArgument(Int)
    GlobalVariable(Handle)
    LocalVariable(Handle)
    Load(Handle)
    AddressOf(Handle, Handle)
    AtomicCall(AtomicFunction, Array[Handle])
    ImageSample(Handle, Handle, SwizzleComponent?, Handle, Handle?, Handle?, SampleLevel, Handle?, Bool)
    ImageLoad(Handle, Handle, Handle?, Handle?, Handle?)
    ImageQuery(Handle, ImageQuery)
    Unary(UnaryOperator, Handle)
    Binary(BinaryOperator, Handle, Handle)
    FunctionCall(Handle, Array[Handle])
    Select(Handle, Handle, Handle)
    Bitcast(Handle, Handle)
    Derivative(DerivativeAxis, DerivativeControl, Handle)
    Relational(RelationalFunction, Handle)
    Math(MathFunction, Handle, Handle?, Handle?, Handle?)
    As(Handle, ScalarKind, Int?)
    CallResult(Handle)
    AtomicResult(Handle, Bool)
    WorkGroupUniformLoadResult(Handle)
    WorkGroupUniformLoad(Handle)
    ArrayLength(Handle)
    RayQueryInitialize(Handle, Handle, Handle)
    RayQueryProceed(Handle)
    RayQueryGenerateIntersection(Handle, Handle)
    RayQueryConfirmIntersection(Handle)
    RayQueryTerminate(Handle)
    RayQueryVertexPositions(Handle, Bool)
    RayQueryProceedResult
    RayQueryGetIntersection(Handle, Bool)
    SubgroupCall(SubgroupFunction, Array[Handle])
    SubgroupBallotResult
    SubgroupOperationResult(Handle)
    CooperativeLoad(CooperativeSize, CooperativeSize, CooperativeRole, CooperativeData)
    CooperativeMultiplyAdd(Handle, Handle, Handle)
    } derive(Eq,
    Debug
    )

    Expression::equal

    fn Expression::equal(Expression, Expression) -> Bool

    Expression::not_equal

    fn Expression::not_equal(x : Expression, y : Expression) -> Bool

    ExpressionArena

    pub(all) struct ExpressionArena {
    items : Array[Expression]
    origins : Array[ExpressionOrigin]
    } derive(Eq,
    Debug
    )

    ExpressionArena::ExpressionArena

    fn ExpressionArena::ExpressionArena() -> ExpressionArena

    ExpressionArena::append

    fn ExpressionArena::append(self : ExpressionArena, item : Expression) -> Handle

    ExpressionArena::equal

    ExpressionArena::not_equal

    fn ExpressionArena::not_equal(x : ExpressionArena, y : ExpressionArena) -> Bool

    ExpressionArena::origin

    fn ExpressionArena::origin(self : ExpressionArena, handle : Handle) -> ExpressionOrigin?

    ExpressionOrigin

    pub(all) enum ExpressionOrigin {
    SourceExpression
    FoldedLocalConstant
    RetainedSourceLetExpression
    SourceLocalConstInitializer
    } derive(Eq,
    Debug
    )

    ExpressionOrigin::equal

    ExpressionOrigin::not_equal

    fn ExpressionOrigin::not_equal(x : ExpressionOrigin, y : ExpressionOrigin) -> Bool

    FilterableTriggeringRule

    pub(all) enum FilterableTriggeringRule {
    Standard(StandardFilterableTriggeringRule)
    Unknown(String)
    User(String, String)
    } derive(Eq,
    Debug
    )

    FilterableTriggeringRule::equal

    FilterableTriggeringRule::not_equal

    Function

    pub(all) struct Function {
    name : String?
    source_start : Int
    arguments : Array[FunctionArgument]
    result : FunctionResult?
    local_variables : LocalVariableArena
    expressions : ExpressionArena
    named_expressions : Array[NamedExpression]
    body : Block
    diagnostic_filter_leaf : Handle?
    } derive(Eq,
    Debug
    )

    Function::Function

    fn Function::Function(name : String?) -> Function

    Function::equal

    fn Function::equal(Function, Function) -> Bool

    Function::not_equal

    fn Function::not_equal(x : Function, y : Function) -> Bool

    Function::to_repr

    FunctionArena

    pub(all) struct FunctionArena {
    items : Array[Function]
    } derive(Eq,
    Debug
    )

    FunctionArena::FunctionArena

    fn FunctionArena::FunctionArena() -> FunctionArena

    FunctionArena::append

    fn FunctionArena::append(self : FunctionArena, item : Function) -> Handle

    FunctionArena::equal

    FunctionArena::not_equal

    fn FunctionArena::not_equal(x : FunctionArena, y : FunctionArena) -> Bool

    FunctionArena::set

    fn FunctionArena::set(self : FunctionArena, handle : Handle, item : Function) -> Unit

    FunctionArgument

    pub(all) struct FunctionArgument {
    name : String?
    ty : Handle
    binding : Binding?
    } derive(Eq,
    Debug
    )

    FunctionArgument::equal

    FunctionArgument::not_equal

    fn FunctionArgument::not_equal(x : FunctionArgument, y : FunctionArgument) -> Bool

    FunctionResult

    pub(all) struct FunctionResult {
    ty : Handle
    binding : Binding?
    } derive(Eq,
    Debug
    )

    FunctionResult::equal

    FunctionResult::not_equal

    fn FunctionResult::not_equal(x : FunctionResult, y : FunctionResult) -> Bool

    GatherMode

    pub(all) enum GatherMode {
    BroadcastFirst
    Broadcast(Handle)
    Shuffle(Handle)
    ShuffleDown(Handle)
    ShuffleUp(Handle)
    ShuffleXor(Handle)
    QuadBroadcast(Handle)
    QuadSwap(Direction)
    } derive(Eq,
    Debug
    )

    GatherMode::equal

    fn GatherMode::equal(GatherMode, GatherMode) -> Bool

    GatherMode::not_equal

    fn GatherMode::not_equal(x : GatherMode, y : GatherMode) -> Bool

    GlobalVariable

    pub(all) struct GlobalVariable {
    name : String?
    space : AddressSpace
    binding : ResourceBinding?
    ty : Handle
    init : Handle?
    memory_decorations : MemoryDecorations
    } derive(Eq,
    Debug
    )

    GlobalVariable::equal

    GlobalVariable::not_equal

    fn GlobalVariable::not_equal(x : GlobalVariable, y : GlobalVariable) -> Bool

    GlobalVariableArena

    pub(all) struct GlobalVariableArena {
    items : Array[GlobalVariable]
    } derive(Eq,
    Debug
    )

    GlobalVariableArena::GlobalVariableArena

    fn GlobalVariableArena::GlobalVariableArena() -> GlobalVariableArena

    GlobalVariableArena::append

    GlobalVariableArena::equal

    GlobalVariableArena::not_equal

    GlobalVariableArena::set

    fn GlobalVariableArena::set(self : GlobalVariableArena, handle : Handle, item : GlobalVariable) -> Unit

    Handle

    pub(all) struct Handle {
    index : Int
    } derive(Eq,
    Debug
    )

    Handle::Handle

    fn Handle::Handle(index : Int) -> Handle

    Handle::equal

    fn Handle::equal(Handle, Handle) -> Bool

    Handle::index

    fn Handle::index(self : Handle) -> Int

    Handle::not_equal

    fn Handle::not_equal(x : Handle, y : Handle) -> Bool

    Handle::to_repr

    HandleRange

    pub(all) struct HandleRange {
    start : Handle
    end : Handle
    } derive(Eq,
    Debug
    )

    HandleRange::HandleRange

    fn HandleRange::HandleRange(start : Handle, end : Handle) -> HandleRange

    HandleRange::equal

    fn HandleRange::equal(HandleRange, HandleRange) -> Bool

    HandleRange::not_equal

    fn HandleRange::not_equal(x : HandleRange, y : HandleRange) -> Bool

    ImageClass

    pub(all) enum ImageClass {
    Sampled(ScalarKind, Bool)
    Depth(Bool)
    External
    Storage(StorageFormat, StorageAccess)
    } derive(Eq,
    Debug
    )

    ImageClass::equal

    fn ImageClass::equal(ImageClass, ImageClass) -> Bool

    ImageClass::not_equal

    fn ImageClass::not_equal(x : ImageClass, y : ImageClass) -> Bool

    ImageDimension

    pub(all) enum ImageDimension {
    D1
    D2
    D3
    Cube
    } derive(Eq,
    Debug
    )

    ImageDimension::equal

    ImageDimension::not_equal

    fn ImageDimension::not_equal(x : ImageDimension, y : ImageDimension) -> Bool

    ImageQuery

    pub(all) enum ImageQuery {
    Size(Handle?)
    NumLevels
    NumLayers
    NumSamples
    } derive(Eq,
    Debug
    )

    ImageQuery::equal

    fn ImageQuery::equal(ImageQuery, ImageQuery) -> Bool

    ImageQuery::not_equal

    fn ImageQuery::not_equal(x : ImageQuery, y : ImageQuery) -> Bool

    Interpolation

    pub(all) enum Interpolation {
    Perspective
    Linear
    Flat
    PerVertex
    } derive(Eq,
    Debug
    )

    Interpolation::equal

    Interpolation::not_equal

    fn Interpolation::not_equal(x : Interpolation, y : Interpolation) -> Bool

    Literal

    pub(all) enum Literal {
    F64(Double)
    F32(Float)
    F32Exact(Float)
    F16(Double)
    U16(Int)
    I16(Int)
    U32(UInt)
    I32(Int)
    U64(UInt64)
    I64(Int64)
    Bool(Bool)
    AbstractInt(Int64)
    AbstractFloat(Double)
    } derive(Eq,
    Debug
    )

    Literal::equal

    fn Literal::equal(Literal, Literal) -> Bool

    Literal::not_equal

    fn Literal::not_equal(x : Literal, y : Literal) -> Bool

    Literal::to_repr

    LocalVariable

    pub(all) struct LocalVariable {
    name : String?
    kind : LocalVariableKind
    generated_temporary : Bool
    generated_temporary_store_value_reference : Bool
    short_circuit_result : Bool
    ty : Handle
    init : Handle?
    } derive(Eq,
    Debug
    )

    LocalVariable::equal

    LocalVariable::not_equal

    fn LocalVariable::not_equal(x : LocalVariable, y : LocalVariable) -> Bool

    LocalVariableArena

    pub(all) struct LocalVariableArena {
    items : Array[LocalVariable]
    } derive(Eq,
    Debug
    )

    LocalVariableArena::LocalVariableArena

    fn LocalVariableArena::LocalVariableArena() -> LocalVariableArena

    LocalVariableArena::append

    LocalVariableArena::equal

    LocalVariableArena::not_equal

    LocalVariableKind

    pub(all) enum LocalVariableKind {
    Var
    Let
    } derive(Eq,
    Debug
    )

    LocalVariableKind::equal

    LocalVariableKind::not_equal

    fn LocalVariableKind::not_equal(x : LocalVariableKind, y : LocalVariableKind) -> Bool

    MathFunction

    pub(all) enum MathFunction {
    Abs
    Min
    Max
    Clamp
    Saturate
    Cos
    Cosh
    Sin
    Sinh
    Tan
    Tanh
    Acos
    Asin
    Atan
    Atan2
    Asinh
    Acosh
    Atanh
    Radians
    Degrees
    Ceil
    Floor
    Round
    Fract
    Trunc
    Modf
    Frexp
    Ldexp
    Exp
    Exp2
    Log
    Log2
    Pow
    Dot
    Dot4I8Packed
    Dot4U8Packed
    Outer
    Cross
    Distance
    Length
    Normalize
    FaceForward
    Reflect
    Refract
    Sign
    Fma
    Mix
    Step
    SmoothStep
    Sqrt
    InverseSqrt
    Inverse
    Transpose
    Determinant
    QuantizeToF16
    CountTrailingZeros
    CountLeadingZeros
    CountOneBits
    ReverseBits
    ExtractBits
    InsertBits
    FirstTrailingBit
    FirstLeadingBit
    Pack4x8snorm
    Pack4x8unorm
    Pack2x16snorm
    Pack2x16unorm
    Pack2x16float
    Pack4xI8
    Pack4xU8
    Pack4xI8Clamp
    Pack4xU8Clamp
    Unpack4x8snorm
    Unpack4x8unorm
    Unpack2x16snorm
    Unpack2x16unorm
    Unpack2x16float
    Unpack4xI8
    Unpack4xU8
    } derive(Eq,
    Debug
    )

    MathFunction::equal

    MathFunction::not_equal

    fn MathFunction::not_equal(x : MathFunction, y : MathFunction) -> Bool

    MemoryDecorations

    pub(all) struct MemoryDecorations {
    bits : Int
    } derive(Eq,
    Debug
    )

    MemoryDecorations::coherent

    MemoryDecorations::empty

    MemoryDecorations::equal

    MemoryDecorations::not_equal

    fn MemoryDecorations::not_equal(x : MemoryDecorations, y : MemoryDecorations) -> Bool

    MemoryDecorations::union

    MemoryDecorations::volatile_decoration

    fn MemoryDecorations::volatile_decoration() -> MemoryDecorations

    MeshOutputTopology

    pub(all) enum MeshOutputTopology {
    Points
    Lines
    Triangles
    } derive(Eq,
    Debug
    )

    MeshOutputTopology::equal

    MeshOutputTopology::not_equal

    MeshStageInfo

    pub(all) struct MeshStageInfo {
    topology : MeshOutputTopology
    max_vertices : Int
    max_vertices_override : Handle?
    max_primitives : Int
    max_primitives_override : Handle?
    vertex_output_type : Handle
    primitive_output_type : Handle
    output_variable : Handle
    } derive(Eq,
    Debug
    )

    MeshStageInfo::equal

    MeshStageInfo::not_equal

    fn MeshStageInfo::not_equal(x : MeshStageInfo, y : MeshStageInfo) -> Bool

    Module

    pub(all) struct Module {
    directives : Array[String]
    types : TypeArena
    special_types : SpecialTypes
    constants : ConstantArena
    const_asserts : Array[Handle]
    overrides : OverrideArena
    global_variables : GlobalVariableArena
    global_expressions : ExpressionArena
    functions : FunctionArena
    entry_points : Array[EntryPoint]
    diagnostic_filters : DiagnosticFilterArena
    diagnostic_filter_leaf : Handle?
    doc_comments : DocComments?
    } derive(Eq,
    Debug
    )

    Module::Module

    fn Module::Module() -> Module

    Module::append_const_assert

    fn Module::append_const_assert(self : Module, condition : Handle) -> Unit

    Module::append_constant

    fn Module::append_constant(self : Module, constant : Constant) -> Handle

    Module::append_directive

    fn Module::append_directive(self : Module, directive : String) -> Unit

    Module::append_entry_point

    fn Module::append_entry_point(self : Module, entry_point : EntryPoint) -> Unit

    Module::append_function

    fn Module::append_function(self : Module, function : Function) -> Handle

    Module::append_global_expression

    fn Module::append_global_expression(self : Module, expression : Expression) -> Handle

    Module::append_global_variable

    fn Module::append_global_variable(self : Module, global : GlobalVariable) -> Handle

    Module::append_override

    fn Module::append_override(self : Module, override_ : Override) -> Handle

    Module::append_type

    fn Module::append_type(self : Module, ty : Type) -> Handle

    Module::equal

    fn Module::equal(Module, Module) -> Bool

    Module::not_equal

    fn Module::not_equal(x : Module, y : Module) -> Bool

    Module::set_function

    fn Module::set_function(self : Module, handle : Handle, function : Function) -> Unit

    Module::set_override

    fn Module::set_override(self : Module, handle : Handle, override_ : Override) -> Unit

    Module::to_repr

    NamedExpression

    pub(all) struct NamedExpression {
    handle : Handle
    name : String
    ty : Handle
    } derive(Eq,
    Debug
    )

    NamedExpression::equal

    NamedExpression::not_equal

    fn NamedExpression::not_equal(x : NamedExpression, y : NamedExpression) -> Bool

    Override

    pub(all) struct Override {
    name : String?
    id : Int?
    ty : Handle
    init : Handle?
    } derive(Eq,
    Debug
    )

    Override::equal

    fn Override::equal(Override, Override) -> Bool

    Override::not_equal

    fn Override::not_equal(x : Override, y : Override) -> Bool

    Override::to_repr

    OverrideArena

    pub(all) struct OverrideArena {
    items : Array[Override]
    } derive(Eq,
    Debug
    )

    OverrideArena::OverrideArena

    fn OverrideArena::OverrideArena() -> OverrideArena

    OverrideArena::append

    fn OverrideArena::append(self : OverrideArena, item : Override) -> Handle

    OverrideArena::equal

    OverrideArena::not_equal

    fn OverrideArena::not_equal(x : OverrideArena, y : OverrideArena) -> Bool

    OverrideArena::set

    fn OverrideArena::set(self : OverrideArena, handle : Handle, item : Override) -> Unit

    PredeclaredType

    pub(all) enum PredeclaredType {
    AtomicCompareExchangeWeakResult(Scalar)
    ModfResult(VectorSize?, Scalar)
    FrexpResult(VectorSize?, Scalar)
    } derive(Eq,
    Debug
    )

    PredeclaredType::equal

    PredeclaredType::not_equal

    fn PredeclaredType::not_equal(x : PredeclaredType, y : PredeclaredType) -> Bool

    RayFlag

    pub(all) struct RayFlag {
    bits : Int
    } derive(Eq,
    Debug
    )

    RayFlag::cull_back_facing

    fn RayFlag::cull_back_facing() -> RayFlag

    RayFlag::cull_front_facing

    fn RayFlag::cull_front_facing() -> RayFlag

    RayFlag::cull_no_opaque

    fn RayFlag::cull_no_opaque() -> RayFlag

    RayFlag::cull_opaque

    fn RayFlag::cull_opaque() -> RayFlag

    RayFlag::empty

    fn RayFlag::empty() -> RayFlag

    RayFlag::equal

    fn RayFlag::equal(RayFlag, RayFlag) -> Bool

    RayFlag::force_no_opaque

    fn RayFlag::force_no_opaque() -> RayFlag

    RayFlag::force_opaque

    fn RayFlag::force_opaque() -> RayFlag

    RayFlag::not_equal

    fn RayFlag::not_equal(x : RayFlag, y : RayFlag) -> Bool

    RayFlag::skip_aabbs

    fn RayFlag::skip_aabbs() -> RayFlag

    RayFlag::skip_closest_hit_shader

    fn RayFlag::skip_closest_hit_shader() -> RayFlag

    RayFlag::skip_triangles

    fn RayFlag::skip_triangles() -> RayFlag

    RayFlag::terminate_on_first_hit

    fn RayFlag::terminate_on_first_hit() -> RayFlag

    RayFlag::to_repr

    RayFlag::union

    fn RayFlag::union(self : RayFlag, other : RayFlag) -> RayFlag

    RayPipelineFunction

    pub(all) enum RayPipelineFunction {
    TraceRay(Handle, Handle, Handle)
    } derive(Eq,
    Debug
    )

    RayPipelineFunction::equal

    RayPipelineFunction::not_equal

    RayQueryFunction

    pub(all) enum RayQueryFunction {
    Initialize(Handle, Handle)
    Proceed(Handle)
    GenerateIntersection(Handle)
    ConfirmIntersection
    Terminate
    } derive(Eq,
    Debug
    )

    RayQueryFunction::equal

    RayQueryFunction::not_equal

    fn RayQueryFunction::not_equal(x : RayQueryFunction, y : RayQueryFunction) -> Bool

    RayQueryIntersection

    pub(all) enum RayQueryIntersection {
    None
    Triangle
    Generated
    Aabb
    } derive(Eq,
    Debug
    )

    RayQueryIntersection::equal

    RayQueryIntersection::not_equal

    RelationalFunction

    pub(all) enum RelationalFunction {
    All
    Any
    IsNan
    IsInf
    } derive(Eq,
    Debug
    )

    RelationalFunction::equal

    RelationalFunction::not_equal

    ResourceBinding

    pub(all) struct ResourceBinding {
    group : Int
    binding : Int
    } derive(Eq,
    Debug
    )

    ResourceBinding::equal

    ResourceBinding::not_equal

    fn ResourceBinding::not_equal(x : ResourceBinding, y : ResourceBinding) -> Bool

    SampleLevel

    pub(all) enum SampleLevel {
    Auto
    Zero
    Exact(Handle)
    Bias(Handle)
    Gradient(Handle, Handle)
    } derive(Eq,
    Debug
    )

    SampleLevel::equal

    fn SampleLevel::equal(SampleLevel, SampleLevel) -> Bool

    SampleLevel::not_equal

    fn SampleLevel::not_equal(x : SampleLevel, y : SampleLevel) -> Bool

    Sampling

    pub(all) enum Sampling {
    Center
    Centroid
    Sample
    First
    Either
    } derive(Eq,
    Debug
    )

    Sampling::equal

    fn Sampling::equal(Sampling, Sampling) -> Bool

    Sampling::not_equal

    fn Sampling::not_equal(x : Sampling, y : Sampling) -> Bool

    Sampling::to_repr

    Scalar

    pub(all) struct Scalar {
    kind : ScalarKind
    width : Int
    } derive(Eq,
    Debug
    )

    Scalar::Scalar

    fn Scalar::Scalar(kind : ScalarKind, width : Int) -> Scalar

    Scalar::equal

    fn Scalar::equal(Scalar, Scalar) -> Bool

    Scalar::not_equal

    fn Scalar::not_equal(x : Scalar, y : Scalar) -> Bool

    Scalar::to_repr

    ScalarKind

    pub(all) enum ScalarKind {
    Sint
    Uint
    Float
    Bool
    AbstractInt
    AbstractFloat
    } derive(Eq,
    Debug
    )

    ScalarKind::equal

    fn ScalarKind::equal(ScalarKind, ScalarKind) -> Bool

    ScalarKind::not_equal

    fn ScalarKind::not_equal(x : ScalarKind, y : ScalarKind) -> Bool

    Severity

    pub(all) enum Severity {
    Off
    Info
    Warning
    Error
    } derive(Eq,
    Debug
    )

    Severity::equal

    fn Severity::equal(Severity, Severity) -> Bool

    Severity::not_equal

    fn Severity::not_equal(x : Severity, y : Severity) -> Bool

    Severity::to_repr

    ShaderStage

    pub(all) enum ShaderStage {
    Vertex
    Task
    Mesh
    Fragment
    Compute
    RayGeneration
    Miss
    AnyHit
    ClosestHit
    } derive(Eq,
    Debug
    )

    ShaderStage::equal

    fn ShaderStage::equal(ShaderStage, ShaderStage) -> Bool

    ShaderStage::not_equal

    fn ShaderStage::not_equal(x : ShaderStage, y : ShaderStage) -> Bool

    SpecialTypes

    pub(all) struct SpecialTypes {
    ray_desc : Handle?
    ray_intersection : Handle?
    ray_vertex_return : Handle?
    external_texture_params : Handle?
    external_texture_transfer_function : Handle?
    predeclared_types : Array[(PredeclaredType, Handle)]
    } derive(Eq,
    Debug
    )

    SpecialTypes::SpecialTypes

    fn SpecialTypes::SpecialTypes() -> SpecialTypes

    SpecialTypes::equal

    SpecialTypes::not_equal

    fn SpecialTypes::not_equal(x : SpecialTypes, y : SpecialTypes) -> Bool

    StandardFilterableTriggeringRule

    pub(all) enum StandardFilterableTriggeringRule {
    DerivativeUniformity
    } derive(Eq,
    Debug
    )

    Statement

    pub(all) enum Statement {
    Declare(Handle)
    Emit(HandleRange)
    Phony(Handle)
    Block(Block)
    If(Handle, Block, Block)
    Switch(Handle, Array[SwitchCase])
    Loop(Block, Block, Handle?)
    Break
    Continue
    Return(Handle?)
    ImplicitReturn
    Kill
    ConstAssert(Handle)
    ControlBarrier(Barrier)
    MemoryBarrier(Barrier)
    Store(Handle, Handle)
    ImageStore(Handle, Handle, Handle?, Handle)
    Atomic(Handle, AtomicFunction, Handle, Handle?, Handle?)
    ImageAtomic(Handle, Handle, Handle?, AtomicFunction, Handle)
    WorkGroupUniformLoad(Handle, Handle)
    Call(Handle, Array[Handle], Handle?)
    RayQuery(Handle, RayQueryFunction)
    RayPipelineFunction(RayPipelineFunction)
    SubgroupBallot(Handle, Handle?)
    SubgroupGather(GatherMode, Handle, Handle)
    SubgroupCollectiveOperation(SubgroupOperation, CollectiveOperation, Handle, Handle)
    CooperativeStore(Handle, CooperativeData)
    } derive(Eq,
    Debug
    )

    Statement::equal

    fn Statement::equal(Statement, Statement) -> Bool

    Statement::not_equal

    fn Statement::not_equal(x : Statement, y : Statement) -> Bool

    StorageAccess

    pub(all) struct StorageAccess {
    bits : Int
    } derive(Eq,
    Debug
    )

    StorageAccess::atomic_access

    fn StorageAccess::atomic_access() -> StorageAccess

    StorageAccess::contains

    fn StorageAccess::contains(self : StorageAccess, other : StorageAccess) -> Bool

    StorageAccess::empty

    StorageAccess::equal

    StorageAccess::load

    StorageAccess::not_equal

    fn StorageAccess::not_equal(x : StorageAccess, y : StorageAccess) -> Bool

    StorageAccess::store

    StorageAccess::union

    StorageFormat

    pub(all) enum StorageFormat {
    R8Unorm
    R8Snorm
    R8Uint
    R8Sint
    R16Uint
    R16Sint
    R16Float
    Rg8Unorm
    Rg8Snorm
    Rg8Uint
    Rg8Sint
    R32Uint
    R32Sint
    R32Float
    Rg16Uint
    Rg16Sint
    Rg16Float
    Rgba8Unorm
    Rgba8Snorm
    Rgba8Uint
    Rgba8Sint
    Bgra8Unorm
    Rgb10a2Uint
    Rgb10a2Unorm
    Rg11b10Ufloat
    R64Uint
    Rg32Uint
    Rg32Sint
    Rg32Float
    Rgba16Uint
    Rgba16Sint
    Rgba16Float
    Rgba32Uint
    Rgba32Sint
    Rgba32Float
    R16Unorm
    R16Snorm
    Rg16Unorm
    Rg16Snorm
    Rgba16Unorm
    Rgba16Snorm
    } derive(Eq,
    Debug
    )

    StorageFormat::equal

    StorageFormat::not_equal

    fn StorageFormat::not_equal(x : StorageFormat, y : StorageFormat) -> Bool

    StructMember

    pub(all) struct StructMember {
    name : String?
    ty : Handle
    binding : Binding?
    offset : Int
    size : Int?
    align : Int?
    } derive(Eq,
    Debug
    )

    StructMember::equal

    StructMember::not_equal

    fn StructMember::not_equal(x : StructMember, y : StructMember) -> Bool

    SubgroupFunction

    pub(all) enum SubgroupFunction {
    Ballot
    All
    Any
    Add
    Mul
    Max
    Min
    And
    Or
    Xor
    ExclusiveAdd
    ExclusiveMul
    InclusiveAdd
    InclusiveMul
    BroadcastFirst
    Broadcast
    Shuffle
    ShuffleDown
    ShuffleUp
    ShuffleXor
    QuadBroadcast
    QuadSwapX
    QuadSwapY
    QuadSwapDiagonal
    } derive(Eq,
    Debug
    )

    SubgroupFunction::equal

    SubgroupFunction::not_equal

    fn SubgroupFunction::not_equal(x : SubgroupFunction, y : SubgroupFunction) -> Bool

    SubgroupOperation

    pub(all) enum SubgroupOperation {
    All
    Any
    Add
    Mul
    Min
    Max
    And
    Or
    Xor
    } derive(Eq,
    Debug
    )

    SubgroupOperation::equal

    SubgroupOperation::not_equal

    fn SubgroupOperation::not_equal(x : SubgroupOperation, y : SubgroupOperation) -> Bool

    SwitchCase

    pub(all) struct SwitchCase {
    value : SwitchValue
    body : Block
    fall_through : Bool
    constant_dependencies : Array[Handle]
    } derive(Eq,
    Debug
    )

    SwitchCase::equal

    fn SwitchCase::equal(SwitchCase, SwitchCase) -> Bool

    SwitchCase::not_equal

    fn SwitchCase::not_equal(x : SwitchCase, y : SwitchCase) -> Bool

    SwitchCaseLabelStyle

    pub(all) enum SwitchCaseLabelStyle {
    Typed
    SourceAbstractInt
    } derive(Eq,
    Debug
    )

    SwitchCaseLabelStyle::equal

    SwitchCaseLabelStyle::not_equal

    SwitchValue

    pub(all) enum SwitchValue {
    I32(Int, SwitchCaseLabelStyle)
    U32(UInt, SwitchCaseLabelStyle)
    Default
    } derive(Eq,
    Debug
    )

    SwitchValue::equal

    fn SwitchValue::equal(SwitchValue, SwitchValue) -> Bool

    SwitchValue::not_equal

    fn SwitchValue::not_equal(x : SwitchValue, y : SwitchValue) -> Bool

    SwizzleComponent

    pub(all) enum SwizzleComponent {
    X
    Y
    Z
    W
    } derive(Eq,
    Debug
    )

    SwizzleComponent::equal

    SwizzleComponent::not_equal

    fn SwizzleComponent::not_equal(x : SwizzleComponent, y : SwizzleComponent) -> Bool

    Type

    pub(all) struct Type {
    name : String?
    inner : TypeInner
    } derive(Eq,
    Debug
    )

    Type::equal

    fn Type::equal(Type, Type) -> Bool

    Type::not_equal

    fn Type::not_equal(x : Type, y : Type) -> Bool

    Type::to_repr

    TypeArena

    pub(all) struct TypeArena {
    items : Array[Type]
    } derive(Eq,
    Debug
    )

    TypeArena::TypeArena

    fn TypeArena::TypeArena() -> TypeArena

    TypeArena::append

    fn TypeArena::append(self : TypeArena, item : Type) -> Handle

    TypeArena::equal

    fn TypeArena::equal(TypeArena, TypeArena) -> Bool

    TypeArena::get

    fn TypeArena::get(self : TypeArena, handle : Handle) -> Type?

    TypeArena::not_equal

    fn TypeArena::not_equal(x : TypeArena, y : TypeArena) -> Bool

    TypeArena::set

    fn TypeArena::set(self : TypeArena, handle : Handle, item : Type) -> Unit

    TypeInner

    pub(all) enum TypeInner {
    Scalar(Scalar)
    Vector(VectorSize, Scalar)
    Matrix(VectorSize, VectorSize, Scalar)
    CooperativeMatrix(CooperativeSize, CooperativeSize, Scalar, CooperativeRole)
    Atomic(Scalar)
    Pointer(Handle, AddressSpace)
    ValuePointer(VectorSize?, Scalar, AddressSpace)
    Array(Handle, ArraySize, Int)
    Struct(Array[StructMember], Int)
    PredeclaredStruct(Array[StructMember], Int)
    Image(ImageDimension, Bool, ImageClass)
    Sampler(Bool)
    AccelerationStructure(Bool)
    RayQuery(Bool)
    BindingArray(Handle, ArraySize)
    } derive(Eq,
    Debug
    )

    TypeInner::equal

    fn TypeInner::equal(TypeInner, TypeInner) -> Bool

    TypeInner::not_equal

    fn TypeInner::not_equal(x : TypeInner, y : TypeInner) -> Bool

    UnaryOperator

    pub(all) enum UnaryOperator {
    Negate
    LogicalNot
    BitwiseNot
    } derive(Eq,
    Debug
    )

    UnaryOperator::equal

    UnaryOperator::not_equal

    fn UnaryOperator::not_equal(x : UnaryOperator, y : UnaryOperator) -> Bool

    VectorSize

    pub(all) enum VectorSize {
    Bi
    Tri
    Quad
    } derive(Eq,
    Debug
    )

    VectorSize::equal

    fn VectorSize::equal(VectorSize, VectorSize) -> Bool

    VectorSize::not_equal

    fn VectorSize::not_equal(x : VectorSize, y : VectorSize) -> Bool

    VectorSize::width

    fn VectorSize::width(self : VectorSize) -> Int

    WgslIrReachability

    pub struct WgslIrReachability {
    types :
    Set
    [String]
    type_order : Array[Int]
    constants :
    Set
    [String]
    constant_order : Array[Int]
    overrides :
    Set
    [String]
    override_order : Array[Int]
    global_variables :
    Set
    [String]
    global_variable_order : Array[Int]
    functions :
    Set
    [String]
    entry_points :
    Set
    [String]
    }

    WgslIrReachability::contains_constant

    fn WgslIrReachability::contains_constant(self : WgslIrReachability, index : Int) -> Bool

    WgslIrReachability::contains_entry_point

    fn WgslIrReachability::contains_entry_point(self : WgslIrReachability, index : Int) -> Bool

    WgslIrReachability::contains_function

    fn WgslIrReachability::contains_function(self : WgslIrReachability, index : Int) -> Bool

    WgslIrReachability::contains_global_variable

    fn WgslIrReachability::contains_global_variable(self : WgslIrReachability, index : Int) -> Bool

    WgslIrReachability::contains_override

    fn WgslIrReachability::contains_override(self : WgslIrReachability, index : Int) -> Bool

    WgslIrReachability::contains_type

    fn WgslIrReachability::contains_type(self : WgslIrReachability, index : Int) -> Bool

    WgslIrTypeInference

    pub struct WgslIrTypeInference {
    // private fields
    }

    Semantic type queries shared by valid-WGSL and compatibility writers.

    The query owns no naming, ordering, formatting, or compatibility policy.

    WgslIrTypeInference::as_expression_result_type

    fn WgslIrTypeInference::as_expression_result_type(self : WgslIrTypeInference, input : Handle?, kind : ScalarKind, width : Int) -> Handle?

    WgslIrTypeInference::atomic_pointer_scalar_type

    fn WgslIrTypeInference::atomic_pointer_scalar_type(self : WgslIrTypeInference, function : Function?, pointer : Handle) -> Scalar?

    WgslIrTypeInference::expression_type

    fn WgslIrTypeInference::expression_type(self : WgslIrTypeInference, function : Function?, handle : Handle) -> Handle?

    WgslIrTypeInference::from_module

    fn WgslIrTypeInference::from_module(shader_module : Module) -> WgslIrTypeInference

    WgslIrTypeSpelling

    pub struct WgslIrTypeSpelling {
    // private fields
    }

    A policy-neutral type spelling service shared by WGSL writers.

    Callers supply only writer-owned name/expression lookups and the two byte spelling choices that cannot be derived from semantic IR.

    WgslIrTypeSpelling::address_space_template

    fn WgslIrTypeSpelling::address_space_template(self : WgslIrTypeSpelling, space : AddressSpace) -> String

    WgslIrTypeSpelling::compose_constructor_name_for_components

    fn WgslIrTypeSpelling::compose_constructor_name_for_components(self : WgslIrTypeSpelling, handle : Handle, components : Array[Handle], function : Function?) -> String raise WgslIrTypeSpellingError

    WgslIrTypeSpelling::expression_is_pointer

    fn WgslIrTypeSpelling::expression_is_pointer(self : WgslIrTypeSpelling, function : Function?, handle : Handle) -> Bool

    WgslIrTypeSpelling::expression_is_scalar_type

    fn WgslIrTypeSpelling::expression_is_scalar_type(self : WgslIrTypeSpelling, function : Function?, handle : Handle, scalar : Scalar) -> Bool

    WgslIrTypeSpelling::new

    fn WgslIrTypeSpelling::new(shader_module : Module, final_type_name : (Handle) -> String?, global_expression : (Handle) -> String?, elide_storage_pointer_read_access : Bool, storage_texture_type_argument_separator : String) -> WgslIrTypeSpelling

    WgslIrTypeSpelling::scalar_name

    fn WgslIrTypeSpelling::scalar_name(self : WgslIrTypeSpelling, scalar : Scalar) -> String

    WgslIrTypeSpelling::type_contains_abstract_scalar

    fn WgslIrTypeSpelling::type_contains_abstract_scalar(self : WgslIrTypeSpelling, handle : Handle) -> Bool

    WgslIrTypeSpelling::type_is_pointer

    fn WgslIrTypeSpelling::type_is_pointer(self : WgslIrTypeSpelling, handle : Handle) -> Bool

    WgslIrTypeSpelling::type_name

    fn WgslIrTypeSpelling::type_name(self : WgslIrTypeSpelling, handle : Handle) -> String raise WgslIrTypeSpellingError

    build_wgsl_ir_reachability

    fn build_wgsl_ir_reachability(shader_module : Module, root_items : Array[String]) -> WgslIrReachability

    parse_wgsl_module_to_ir

    fn parse_wgsl_module_to_ir(source : String) -> Module raise WgslIrLowerError

    roundtrip_wgsl_source_via_ir

    fn roundtrip_wgsl_source_via_ir(source : String) -> String raise WgslIrPipelineError

    sanitize_wgsl_ir_identifier

    fn sanitize_wgsl_ir_identifier(ident : String) -> String

    tree_shake_wgsl_source_via_ir

    fn tree_shake_wgsl_source_via_ir(source : String, root_items : Array[String]) -> String raise WgslIrPipelineError

    validate_wgsl_ir_module

    fn validate_wgsl_ir_module(shader_module : Module) -> Unit raise WgslIrValidationError

    wgsl_ir_binary_operator_is_comparison

    fn wgsl_ir_binary_operator_is_comparison(op : BinaryOperator) -> Bool

    wgsl_ir_block_ends_with_return

    fn wgsl_ir_block_ends_with_return(block : Block) -> Bool

    wgsl_ir_cooperative_role_name

    fn wgsl_ir_cooperative_role_name(role : CooperativeRole) -> String

    wgsl_ir_cooperative_size_name

    fn wgsl_ir_cooperative_size_name(size : CooperativeSize) -> String

    wgsl_ir_function_expression_is_atomic_compare_exchange_projection_role

    fn wgsl_ir_function_expression_is_atomic_compare_exchange_projection_role(function : Function, handle : Handle) -> Bool

    wgsl_ir_function_named_expression_name

    fn wgsl_ir_function_named_expression_name(function : Function, handle : Handle) -> String?

    wgsl_ir_function_named_expression_type

    fn wgsl_ir_function_named_expression_type(function : Function, handle : Handle) -> Handle?

    wgsl_ir_identifier_ends_with_digit

    fn wgsl_ir_identifier_ends_with_digit(ident : String) -> Bool

    wgsl_ir_identifier_is_builtin_function

    fn wgsl_ir_identifier_is_builtin_function(ident : String) -> Bool

    wgsl_ir_identifier_is_predeclared_type

    fn wgsl_ir_identifier_is_predeclared_type(ident : String) -> Bool

    wgsl_ir_identifier_is_reserved

    fn wgsl_ir_identifier_is_reserved(ident : String) -> Bool

    wgsl_ir_math_primary_result_operand

    fn wgsl_ir_math_primary_result_operand(math_function : MathFunction, a : Handle, b : Handle?, c : Handle?, d : Handle?) -> Handle?

    wgsl_ir_negate_literal

    fn wgsl_ir_negate_literal(literal : Literal) -> Literal?

    wgsl_ir_semantic_source_directives

    fn wgsl_ir_semantic_source_directives(shader_module : Module) -> Array[String]

    wgsl_ir_storage_format_name

    fn wgsl_ir_storage_format_name(format : StorageFormat) -> String

    wgsl_ir_subgroup_function_name

    fn wgsl_ir_subgroup_function_name(function : SubgroupFunction) -> String

    wgsl_ir_uint_literal_to_small_int

    fn wgsl_ir_uint_literal_to_small_int(value : UInt) -> Int?

    Source Files