refactor: add newtype macro
All checks were successful
Rust / build (push) Successful in 1m18s
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
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
All checks were successful
Rust / build (push) Successful in 1m18s
ci/woodpecker/cron/cron-docker-builder Pipeline was successful
ci/woodpecker/cron/push-next Pipeline was successful
ci/woodpecker/cron/tag-created Pipeline was successful
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
This commit is contained in:
parent
be78597331
commit
2e71e40378
2 changed files with 58 additions and 0 deletions
|
@ -8,6 +8,7 @@ mod forge_name;
|
|||
mod forge_type;
|
||||
pub mod git_dir;
|
||||
mod host_name;
|
||||
mod newtype;
|
||||
mod registered_webhook;
|
||||
mod repo_alias;
|
||||
mod repo_branches;
|
||||
|
|
57
crates/config/src/newtype.rs
Normal file
57
crates/config/src/newtype.rs
Normal file
|
@ -0,0 +1,57 @@
|
|||
//
|
||||
#[macro_export]
|
||||
macro_rules! newtype {
|
||||
($name:ident is a $type:ty, without Display) => {
|
||||
#[derive(
|
||||
Clone,
|
||||
Default,
|
||||
Debug,
|
||||
derive_more::From,
|
||||
PartialEq,
|
||||
Eq,
|
||||
PartialOrd,
|
||||
Ord,
|
||||
Hash,
|
||||
derive_more::AsRef,
|
||||
derive_more::Deref,
|
||||
serde::Deserialize,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct $name($type);
|
||||
impl $name {
|
||||
pub fn new(value: impl Into<$type>) -> Self {
|
||||
Self(value.into())
|
||||
}
|
||||
pub fn unwrap(self) -> $type {
|
||||
self.0
|
||||
}
|
||||
}
|
||||
};
|
||||
($name:ident is a $type:ty) => {
|
||||
#[derive(
|
||||
Clone,
|
||||
Default,
|
||||
Debug,
|
||||
derive_more::Display,
|
||||
derive_more::From,
|
||||
PartialEq,
|
||||
Eq,
|
||||
PartialOrd,
|
||||
Ord,
|
||||
Hash,
|
||||
derive_more::AsRef,
|
||||
derive_more::Deref,
|
||||
serde::Deserialize,
|
||||
serde::Serialize,
|
||||
)]
|
||||
pub struct $name($type);
|
||||
impl $name {
|
||||
pub fn new(value: impl Into<$type>) -> Self {
|
||||
Self(value.into())
|
||||
}
|
||||
pub fn unwrap(self) -> $type {
|
||||
self.0
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue