pub fn locate_crate_paths() -> Result<CratePaths, I18nConfigError> {
    let crate_dir = Path::new(
        &std::env::var_os("CARGO_MANIFEST_DIR")
            .ok_or(I18nConfigError::CannotReadCargoManifestDir)?,
    )
    .to_path_buf();
    let i18n_config_file = crate_dir.join("i18n.toml");

    Ok(CratePaths {
        crate_dir,
        i18n_config_file,
    })
}
/// Locate the current crate's directory and `i18n.toml` config file.
/// This is intended to be called by a procedural macro during crate
/// compilation.
Locate the current crate's directory and `i18n.toml` config file.
This is intended to be called by a procedural macro during crate
compilation.
Locate the current crate ' s directory and ` i18n . toml ` config file . This is intended to be called by a procedural macro during crate compilation .
pub fn locate_crate_paths() -> Result<CratePaths, I18nConfigError> {
    let crate_dir = Path::new(
        &std::env::var_os("CARGO_MANIFEST_DIR")
            .ok_or(I18nConfigError::CannotReadCargoManifestDir)?,
    )
    .to_path_buf();
    let i18n_config_file = crate_dir.join("i18n.toml");
    Ok(CratePaths {
        crate_dir,
        i18n_config_file,
    })
}
pub fn locate_crate_paths ( ) -> Result < CratePaths , I18nConfigError > { let crate_dir = Path :: new ( & std :: env :: var_os ( " " ) . ok_or ( I18nConfigError :: CannotReadCargoManifestDir ) ? , ) . to_path_buf ( ) ; let i18n_config_file = crate_dir . join ( " " ) ; Ok ( CratePaths { crate_dir , i18n_config_file , } ) }
Locate the current crate's directory and `i18n.toml` config file.
Locate the current crate ' s directory and ` i18n . toml ` config file .