pub trait ConfigurationFile: Sized {
type Contents: Serialize;
const FILENAME: &'static str;
// Required methods
fn from_directory(
monorepo_root: &Directory,
relative_directory: Directory,
) -> Result<Self, FromFileError>;
fn directory(&self) -> &Directory;
fn path(&self) -> PathBuf;
fn contents(&self) -> &Self::Contents;
// Provided method
fn write(
monorepo_root: &Path,
configuration_file: impl ConfigurationFile,
) -> Result<(), WriteError> { ... }
}
Expand description
Configuration file for some component of the monorepo.
Required Associated Constants§
Required Associated Types§
Required Methods§
Sourcefn from_directory(
monorepo_root: &Directory,
relative_directory: Directory,
) -> Result<Self, FromFileError>
fn from_directory( monorepo_root: &Directory, relative_directory: Directory, ) -> Result<Self, FromFileError>
Create an instance of this configuration file by reading the specified file from this directory on disk.
Sourcefn directory(&self) -> &Directory
fn directory(&self) -> &Directory
Relative path to directory containing this configuration file, from monorepo root.
fn contents(&self) -> &Self::Contents
Provided Methods§
fn write( monorepo_root: &Path, configuration_file: impl ConfigurationFile, ) -> Result<(), WriteError>
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.