use serde::{Deserialize, Serialize};
use uuid::Uuid;
pub type SharedResult<T> = Result<T, SharedError>;
#[derive(Debug, thiserror::Error)]
pub enum SharedError {
#[error("Serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("UUID error: {0}")]
Uuid(#[from] uuid::Error),
}
pub fn generate_session_id() -> Uuid {
Uuid::new_v4()
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SharedConfig {
pub session_id: Uuid,
pub version: String,
}
impl Default for SharedConfig {
fn default() -> Self {
Self {
session_id: generate_session_id(),
version: env!("CARGO_PKG_VERSION").to_string(),
}
}
}