use std::path::Path;
use super::path_normalization::RelativePathError;
use super::read::{ByteCeilings, ReadFault};
pub(crate) trait SnapshotRules: ByteCeilings {
type Inventory;
type Fault;
type Refusal;
type Site;
type Stored;
fn root(&self) -> &Path;
fn max_source_files(&self) -> u32;
fn stored_path(stored: &Self::Stored) -> &str;
fn unrelative(&self, error: RelativePathError, at: (&Self::Site, &Path)) -> Self::Refusal;
fn source_files(&self, at: (&Self::Site, &str)) -> Self::Refusal;
fn unnormalized(&self, at: (&Self::Site, &str)) -> Self::Refusal;
fn refused(&self, fault: Self::Fault, at: (&Self::Site, &str)) -> Self::Refusal;
fn oversized(&self, fault: ReadFault, at: (&Self::Site, &str)) -> Self::Refusal;
}