mercur 0.1.4

mercur - junolang package manager
use crate::registry::compile::parse::{
    AuthorityDefinition as AuthorityTomlDefinition, NamespaceDefinition as NamespaceTomlDefinition,
    PkgDefinition as PkgTomlDefinition,
};

/// Intermediate representation of an entire registry.
///
/// Everything inside this model is still Rust data.
/// FlatBuffers are generated only after optimization.
#[derive(Debug)]
pub struct RegistryModel {
    pub authorities: Vec<AuthorityTomlDefinition>,

    pub namespaces: Vec<NamespaceTomlDefinition>,

    pub packages: Vec<PkgTomlDefinition>,
}

impl RegistryModel {
    pub fn new(
        authorities: Vec<AuthorityTomlDefinition>,
        namespaces: Vec<NamespaceTomlDefinition>,
        packages: Vec<PkgTomlDefinition>,
    ) -> Self {
        Self {
            authorities,
            namespaces,
            packages,
        }
    }
}