Trait ConfigurationFile

Source
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§

Source

const FILENAME: &'static str

Basename of the configuration file.

Required Associated Types§

Required Methods§

Source

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.

Source

fn directory(&self) -> &Directory

Relative path to directory containing this configuration file, from monorepo root.

Source

fn path(&self) -> PathBuf

Relative path to this configuration file from the monorepo root.

Source

fn contents(&self) -> &Self::Contents

Provided Methods§

Source

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.

Implementors§