pub struct FileSystem { /* private fields */ }Expand description
FileSystem service for filesystem operations.
This service encapsulates filesystem operations and can be configured with a base directory for testing. It follows the Stillwater pattern of dependency injection via services.
§Example
use prodigy::cook::input::FileSystem;
// Production: uses current working directory
let fs = FileSystem::new();
assert!(fs.base_dir().is_none());
// Testing: uses specific base directory
let fs = FileSystem::with_base_dir("/tmp/test".into());
assert_eq!(fs.base_dir().unwrap().to_str().unwrap(), "/tmp/test");Implementations§
Source§impl FileSystem
impl FileSystem
Sourcepub fn with_base_dir(base_dir: PathBuf) -> Self
pub fn with_base_dir(base_dir: PathBuf) -> Self
Create a FileSystem with a specific base directory.
All relative patterns will be resolved relative to this directory. This is the primary method for testing - create a FileSystem with a temp directory to avoid CWD races in parallel tests.
Trait Implementations§
Source§impl Clone for FileSystem
impl Clone for FileSystem
Source§fn clone(&self) -> FileSystem
fn clone(&self) -> FileSystem
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FileSystem
impl Debug for FileSystem
Auto Trait Implementations§
impl Freeze for FileSystem
impl RefUnwindSafe for FileSystem
impl Send for FileSystem
impl Sync for FileSystem
impl Unpin for FileSystem
impl UnsafeUnpin for FileSystem
impl UnwindSafe for FileSystem
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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