git-next/crates/git/src/commit.rs
Paul Campbell 621e599b31
All checks were successful
Rust / build (push) Successful in 1m31s
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
refactor: git: use thiserror and cleanup errors
2024-06-03 20:31:39 +01:00

59 lines
1.3 KiB
Rust

//
use git_next_config as config;
#[derive(Clone, Debug, PartialEq, Eq, derive_more::Constructor, derive_more::Display)]
#[display("{}", sha)]
pub struct Commit {
sha: Sha,
message: Message,
}
impl Commit {
pub const fn sha(&self) -> &Sha {
&self.sha
}
pub const fn message(&self) -> &Message {
&self.message
}
}
impl From<config::webhook::Push> for Commit {
fn from(value: config::webhook::Push) -> Self {
Self::new(
Sha::new(value.sha().to_owned()),
Message::new(value.message().to_owned()),
)
}
}
#[derive(Clone, Debug, PartialEq, Eq, derive_more::Constructor, derive_more::Display)]
pub struct Sha(String);
#[derive(Clone, Debug, PartialEq, Eq, derive_more::Constructor, derive_more::Display)]
pub struct Message(String);
#[derive(Clone, Debug)]
pub struct Histories {
pub main: Vec<Commit>,
pub next: Vec<Commit>,
pub dev: Vec<Commit>,
}
pub mod log {
pub type Result<T> = core::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("gix: {0}")]
Gix(String),
#[error("lock")]
Lock,
}
impl From<String> for Error {
fn from(e: String) -> Self {
Self::Gix(e)
}
}
}