pub trait FileSource<'files>: Sync {
type Filepath: AsRef<Path>;
type Contents: AsRef<[u8]>;
type Entry: Send;
type State: Send + Clone;
type Iter: Iterator<Item = Self::Entry> + Send;
// Required methods
fn entries(&'files self) -> Result<Self::Iter, Box<dyn ErrorTrait>>;
fn filepath(
&'files self,
entry: &Self::Entry,
state: &mut Self::State,
) -> Result<Self::Filepath, Box<dyn ErrorTrait>>;
fn contents(
&'files self,
entry: &Self::Entry,
state: &mut Self::State,
) -> Result<Self::Contents, Box<dyn ErrorTrait>>;
fn state(&'files self) -> Result<Self::State, Box<dyn ErrorTrait>>;
// Provided methods
fn overrides(
&self,
path: impl AsRef<Path>,
state: &mut Self::State,
) -> Overrides { ... }
fn language_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<Language> { ... }
fn is_documentation_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool> { ... }
fn is_generated_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool> { ... }
fn is_vendored_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool> { ... }
fn is_detectable_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool> { ... }
}Expand description
Provides files and overrides.
Required Associated Types§
type Filepath: AsRef<Path>
type Contents: AsRef<[u8]>
type Entry: Send
Sourcetype State: Send + Clone
type State: Send + Clone
Sometimes it’s necessary to share a state between iterations to reduce expensive commands.
type Iter: Iterator<Item = Self::Entry> + Send
Required Methods§
Sourcefn entries(&'files self) -> Result<Self::Iter, Box<dyn ErrorTrait>>
fn entries(&'files self) -> Result<Self::Iter, Box<dyn ErrorTrait>>
Returns an iterator over the entries use to get filenames and contents.
Sourcefn filepath(
&'files self,
entry: &Self::Entry,
state: &mut Self::State,
) -> Result<Self::Filepath, Box<dyn ErrorTrait>>
fn filepath( &'files self, entry: &Self::Entry, state: &mut Self::State, ) -> Result<Self::Filepath, Box<dyn ErrorTrait>>
Gets a filename from an entry.
Provided Methods§
Sourcefn overrides(
&self,
path: impl AsRef<Path>,
state: &mut Self::State,
) -> Overrides
fn overrides( &self, path: impl AsRef<Path>, state: &mut Self::State, ) -> Overrides
Provides combined overrides for the file.
Sourcefn language_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<Language>
fn language_override( &self, _path: impl AsRef<Path>, _state: &mut Self::State, ) -> Option<Language>
Provides an optional override for the detected language.
Sourcefn is_documentation_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool>
fn is_documentation_override( &self, _path: impl AsRef<Path>, _state: &mut Self::State, ) -> Option<bool>
Provides an optional override for documentation file detection.
Sourcefn is_generated_override(
&self,
_path: impl AsRef<Path>,
_state: &mut Self::State,
) -> Option<bool>
fn is_generated_override( &self, _path: impl AsRef<Path>, _state: &mut Self::State, ) -> Option<bool>
Provides an optional override for generated file detection.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.