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: f64)
pub fn add_constant(&mut self, name: impl ToString, value: f64)
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;. All constants are of type
AbstractFloat, which can be implicitly converted to all scalar 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>
Try to resolve a source file identified by a module path.
Source§fn display_name(&self, path: &ModulePath) -> Option<String>
fn display_name(&self, path: &ModulePath) -> Option<String>
Get the display name of the module path. Implementing this is optional.
Source§fn fs_path(&self, path: &ModulePath) -> Option<PathBuf>
fn fs_path(&self, path: &ModulePath) -> Option<PathBuf>
Get the filesystem path of the module path. Implementing this is optional.
Used by build scripts for dependency tracking.
Source§fn resolve_module(
&self,
path: &ModulePath,
) -> Result<TranslationUnit, ResolveError>
fn resolve_module( &self, path: &ModulePath, ) -> Result<TranslationUnit, ResolveError>
Try to resolve a source file identified by a module path.
Auto Trait Implementations§
impl Freeze for StandardResolver
impl RefUnwindSafe for StandardResolver
impl Send for StandardResolver
impl Sync for StandardResolver
impl Unpin 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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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