pub struct FsResolver { /* private fields */ }Expand description
Sandboxed filesystem Resolver.
Resolves require("lib.helper") to {root}/lib/helper.lua.
Converts module separator to path separator and searches in order:
{root}/{name}.{extension}{root}/{name}/{init_name}.{extension}
Defaults to LuaConvention::LUA54.
Use with_convention() for bulk changes,
or individual methods for partial overrides.
I/O goes through the SandboxedFs trait. Use with_sandbox
to inject test mocks or alternative backends.
§Errors
new() returns InitError::RootNotFound if the root does not exist.
Implementations§
Source§impl FsResolver
impl FsResolver
Sourcepub fn new(root: impl Into<PathBuf>) -> Result<Self, InitError>
pub fn new(root: impl Into<PathBuf>) -> Result<Self, InitError>
Build an FsResolver backed by the real filesystem.
Sourcepub fn with_sandbox(sandbox: impl SandboxedFs + 'static) -> Self
pub fn with_sandbox(sandbox: impl SandboxedFs + 'static) -> Self
Inject an arbitrary SandboxedFs implementation.
Sourcepub fn with_convention(self, conv: LuaConvention) -> Self
pub fn with_convention(self, conv: LuaConvention) -> Self
Apply a LuaConvention in bulk.
Sourcepub fn with_extension(self, ext: impl Into<String>) -> Self
pub fn with_extension(self, ext: impl Into<String>) -> Self
Change the file extension (default: lua).
Sourcepub fn with_init_name(self, name: impl Into<String>) -> Self
pub fn with_init_name(self, name: impl Into<String>) -> Self
Change the package entry point filename (default: init).
require("pkg") resolves to pkg/{init_name}.{extension}.
Sourcepub fn with_module_separator(self, sep: char) -> Self
pub fn with_module_separator(self, sep: char) -> Self
Change the module name separator (default: .).
require("a{sep}b") is converted to a/b.{extension}.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FsResolver
impl !RefUnwindSafe for FsResolver
impl Send for FsResolver
impl Sync for FsResolver
impl Unpin for FsResolver
impl UnsafeUnpin for FsResolver
impl !UnwindSafe for FsResolver
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