turtle-build 0.3.5

Ninja-compatible build system for high-level programming languages
use super::Build;
use fnv::{FnvHashMap, FnvHashSet};
use std::sync::Arc;

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Configuration {
    outputs: FnvHashMap<String, Arc<Build>>,
    default_outputs: FnvHashSet<String>,
    source_map: FnvHashMap<String, String>,
    build_directory: Option<String>,
}

impl Configuration {
    pub fn new(
        outputs: FnvHashMap<String, Arc<Build>>,
        default_outputs: FnvHashSet<String>,
        source_map: FnvHashMap<String, String>,
        build_directory: Option<String>,
    ) -> Self {
        Self {
            outputs,
            default_outputs,
            source_map,
            build_directory,
        }
    }

    pub fn outputs(&self) -> &FnvHashMap<String, Arc<Build>> {
        &self.outputs
    }

    pub fn default_outputs(&self) -> &FnvHashSet<String> {
        &self.default_outputs
    }

    pub fn source_map(&self) -> &FnvHashMap<String, String> {
        &self.source_map
    }

    pub fn build_directory(&self) -> Option<&str> {
        self.build_directory.as_deref()
    }
}