use std::collections::HashMap;
use std::env;
use std::sync::{Arc, Mutex};
use fernet::Fernet;
pub static IMAGE_FORMATS: [&str; 7] = ["jpeg", "jpg", "png", "gif", "bmp", "svg", "webp"];
pub static SECURE_INDEX: &str = "SECURE_INDEX";
#[allow(dead_code)]
#[derive(Debug, Clone)]
pub struct MetaData {
pub crate_name: String,
pub manifest_dir: String,
pub authors: Vec<String>,
pub description: String,
pub homepage: String,
pub pkg_name: String,
pub pkg_repo: String,
pub pkg_version: String,
pub pkg_version_major: String,
pub pkg_version_minor: String,
pub pkg_version_patch: String,
pub pkg_version_pre: String,
}
pub fn build_info() -> Arc<MetaData> {
let metadata = MetaData {
crate_name: env!("CARGO_CRATE_NAME").to_string(),
manifest_dir: env!("CARGO_MANIFEST_DIR").to_string(),
authors: env!("CARGO_PKG_AUTHORS").split(',').map(String::from).collect(),
description: env!("CARGO_PKG_DESCRIPTION").to_string(),
homepage: env!("CARGO_PKG_HOMEPAGE").to_string(),
pkg_name: env!("CARGO_PKG_NAME").to_string(),
pkg_repo: env!("CARGO_PKG_REPOSITORY").to_string(),
pkg_version: env!("CARGO_PKG_VERSION").to_string(),
pkg_version_major: env!("CARGO_PKG_VERSION_MAJOR").to_string(),
pkg_version_minor: env!("CARGO_PKG_VERSION_MINOR").to_string(),
pkg_version_patch: env!("CARGO_PKG_VERSION_PATCH").to_string(),
pkg_version_pre: env!("CARGO_PKG_VERSION_PRE").to_string(),
};
Arc::new(metadata)
}
pub struct Session {
pub tracker: Mutex<HashMap<String, String>>,
pub mapping: Mutex<HashMap<String, String>>,
}
pub fn session_info() -> Arc<Session> {
Arc::new(Session {
tracker: Mutex::new(HashMap::new()),
mapping: Mutex::new(HashMap::new()),
})
}
pub fn fernet_object() -> Arc<Fernet> {
Arc::new(Fernet::new(&Fernet::generate_key()).unwrap())
}