pub struct StandardResolver { /* private fields */ }Expand description
The resolver that implements the WESL standard.
It resolves modules in external packages registered with Self::add_package and
modules in the local package with the filesystem.
Implementations§
Source§impl StandardResolver
impl StandardResolver
Sourcepub fn new(base: impl AsRef<Path>) -> Self
pub fn new(base: impl AsRef<Path>) -> Self
Create a new resolver.
base is the root directory which absolute paths refer to.
Sourcepub fn add_package(&mut self, pkg: &'static CodegenPkg)
pub fn add_package(&mut self, pkg: &'static CodegenPkg)
Add an external package.
Sourcepub fn add_constant(&mut self, name: impl ToString, value: LiteralInstance)
pub fn add_constant(&mut self, name: impl ToString, value: LiteralInstance)
Add a numeric constant.
Numeric constants live WESL’s special package named constants. This package is
virtual, meaning it doesn’t exist on the filesystem. Constants can be accessed
by importing them: import constants::MY_CONSTANT;.
The type is specified by the variant of LiteralInstance.
If specifying a constant that is used with multiple different types or
a constant that benefits from precision, like π, use AbstractFloat,
which can be implicitly converted to all scalar types.
Note: LiteralInstance implements From for all standard numeric types
Trait Implementations§
Source§impl Resolver for StandardResolver
impl Resolver for StandardResolver
Source§fn resolve_source<'a>(
&'a self,
path: &ModulePath,
) -> Result<Cow<'a, str>, ResolveError>
fn resolve_source<'a>( &'a self, path: &ModulePath, ) -> Result<Cow<'a, str>, ResolveError>
Source§fn display_name(&self, path: &ModulePath) -> Option<String>
fn display_name(&self, path: &ModulePath) -> Option<String>
Source§fn fs_path(&self, path: &ModulePath) -> Option<PathBuf>
fn fs_path(&self, path: &ModulePath) -> Option<PathBuf>
Source§fn canonical_path(&self, path: &ModulePath) -> ModulePath
fn canonical_path(&self, path: &ModulePath) -> ModulePath
Source§fn resolve_module(
&self,
path: &ModulePath,
) -> Result<TranslationUnit, ResolveError>
fn resolve_module( &self, path: &ModulePath, ) -> Result<TranslationUnit, ResolveError>
Auto Trait Implementations§
impl Freeze for StandardResolver
impl RefUnwindSafe for StandardResolver
impl Send for StandardResolver
impl Sync for StandardResolver
impl Unpin for StandardResolver
impl UnsafeUnpin for StandardResolver
impl UnwindSafe for StandardResolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more