diff --git a/src/server/config.rs b/src/server/config.rs index ff0f2fc..9e9c468 100644 --- a/src/server/config.rs +++ b/src/server/config.rs @@ -39,7 +39,48 @@ impl Forge { } } -#[derive(Debug, PartialEq, Eq, Deserialize)] +#[derive(Clone)] +pub struct ForgeName(pub String); +impl Display for ForgeName { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } +} +pub struct Hostname(pub String); +pub struct User(pub String); +pub struct ForgeDetails { + pub name: ForgeName, + pub forge_type: ForgeType, + pub hostname: Hostname, + pub user: User, + // API Token + // Private SSH Key Path +} +impl From<(&ForgeName, &Forge)> for ForgeDetails { + fn from(forge: (&ForgeName, &Forge)) -> Self { + Self { + name: forge.0.clone(), + forge_type: forge.1.forge_type.clone(), + hostname: Hostname(forge.1.hostname.clone()), + user: User(forge.1.user.clone()), + } + } +} +#[derive(Clone)] +pub struct RepoName(pub String); +impl Display for RepoName { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } +} +pub struct RepoPath(pub String); +pub struct RepoDetails { + pub name: RepoName, + pub path: RepoPath, + pub forge: ForgeDetails, +} + +#[derive(Clone, Debug, PartialEq, Eq, Deserialize)] pub enum ForgeType { ForgeJo, // Gitea,