Name Description Size
any_overload_set.rs Dynamically dispatched [`OverloadSet`]s. 3661
constructor_set.rs A set of type constructors, represented as a bitset. 5431
list.rs An [`OverloadSet`] represented as a vector of rules. [`OverloadSet`]: crate::proc::overloads::OverloadSet 6111
mathfunction.rs Overload sets for [`ir::MathFunction`]. 8368
mod.rs ! Overload resolution for builtin functions. This module defines the [`OverloadSet`] trait, which provides methods the validator and typifier can use to check the types to builtin functions, determine their result types, and produce diagnostics that explain why a given application is not allowed and suggest fixes. You can call [`MathFunction::overloads`] to obtain an `impl OverloadSet` representing the given `MathFunction`'s overloads. [`MathFunction::overloads`]: crate::ir::MathFunction::overloads 10596
one_bits_iter.rs An iterator over bitmasks. 2521
regular.rs ! A representation for highly regular overload sets common in Naga IR. Many Naga builtin functions' overload sets have a highly regular structure. For example, many arithmetic functions can be applied to any floating-point type, or any vector thereof. This module defines a handful of types for representing such simple overload sets that is simple and efficient. 18348
rule.rs ! Type rules. An implementation of [`OverloadSet`] represents a set of type rules, each of which has a list of types for its arguments, and a conclusion about the type of the expression as a whole. This module defines the [`Rule`] type, representing a type rule from an [`OverloadSet`], and the [`Conclusion`] type, a specialized enum for representing a type rule's conclusion. [`OverloadSet`]: crate::proc::overloads::OverloadSet 4495
scalar_set.rs A set of scalar types, represented as a bitset. 4639
utils.rs Utility functions for constructing [`List`] overload sets. [`List`]: crate::proc::overloads::list::List 3278