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

Required Associated Constants§

source

const FILENAME: &'static str

Basename of the configuration file.

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>

Object Safety§

This trait is not object safe.

Implementors§