#![forbid(unsafe_code)]
use lunar_lib::paths::init_directories;
use selene_common::{Id, PROGRAM_FS_NAME};
pub mod config;
pub mod database;
pub mod library;
pub mod media;
pub mod transcoding;
pub mod accounts;
pub fn init_dirs() -> Result<(), &'static str> {
init_directories(PROGRAM_FS_NAME)
}
pub trait SeleneIdExt<T> {
fn from_string_hash(string: impl AsRef<str>) -> Self;
}
impl<T> SeleneIdExt<T> for Id<T> {
fn from_string_hash(string: impl AsRef<str>) -> Self {
let hash = blake3::hash(string.as_ref().to_lowercase().as_bytes());
Self::from(*hash.as_bytes())
}
}