use std::{marker::PhantomData, path::PathBuf};
use credent_fs_model::{AppName, Error};
use credent_model::Credentials;
pub const CREDENTIALS_FILE_NAME: &str = "credentials";
#[derive(Debug)]
pub struct CredentialsFile<C = Credentials>(PhantomData<C>);
impl<C> CredentialsFile<C>
where
C: Clone + Eq,
{
pub fn path(app_name: AppName<'_>) -> Result<PathBuf, Error<C>> {
dirs::config_dir()
.map(|config_dir| config_dir.join(*app_name).join(CREDENTIALS_FILE_NAME))
.ok_or(Error::UserConfigDirNotFound)
}
}