#![doc = include_str!("../README.md")]

mod common;
mod config;
mod error;
mod file;

pub use config::{
    base::{OsPurposeContext, VoaConfig},
    technology::settings::{ConfigOrigin, TechnologySettings},
};
pub use error::Error;

/// Items from [`voa_core`] used in [`VoaConfig`].
pub mod core {
    pub use voa_core::identifiers::{Context, Os, Purpose};
}

/// OpenPGP related items.
pub mod openpgp {
    pub use crate::config::technology::openpgp::{
        DomainName,
        Error as OpenpgpError,
        NumCertifications,
        NumDataSignatures,
        OpenpgpFingerprint,
        OpenpgpSettings,
        PlainMode,
        TrustAmountFlow,
        TrustAmountPartial,
        TrustAmountRoot,
        TrustAnchorMode,
        VerificationMethod,
        WebOfTrustMode,
        WebOfTrustRoot,
    };
}

/// The configuration file paths considered in system mode.
pub const CONFIG_DIRS_SYSTEM_MODE: &[&str] = &[
    "/usr/share/voa/",
    "/usr/local/share/voa/",
    "/run/voa/",
    "/etc/voa/",
];
/// The configuration file extension.
pub const CONFIG_FILE_EXTENSION: &str = "yaml";
