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(pkg_root_dir: impl AsRef<Path>) -> Self
pub fn new(pkg_root_dir: impl AsRef<Path>) -> Self
Create a new resolver.
pkg_root_dir is the package root directory which package:: paths refer to.
Sourcepub fn add_package(&mut self, pkg: &'static StaticPackage)
pub fn add_package(&mut self, pkg: &'static StaticPackage)
Add an external package.
Sourcepub fn add_constant(
&mut self,
name: impl ToString,
value: impl Into<LiteralInstance>,
)
pub fn add_constant( &mut self, name: impl ToString, value: impl Into<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 Default for StandardResolver
impl Default for StandardResolver
Source§fn default() -> StandardResolver
fn default() -> StandardResolver
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) -> Result<PathBuf, ResolveError>
fn fs_path(&self, path: &ModulePath) -> Result<PathBuf, ResolveError>
Source§fn module_path(&self, path: &Path) -> Result<ModulePath, ResolveError>
fn module_path(&self, path: &Path) -> Result<ModulePath, ResolveError>
Source§fn canonical_path(&self, path: &ModulePath) -> ModulePath
fn canonical_path(&self, path: &ModulePath) -> ModulePath
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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