@@ -16,3 +16,6 @@ tonic = "0.11.0"
|
||||
|
||||
[build-dependencies]
|
||||
tonic-build = "0.11.0"
|
||||
|
||||
[dev-dependencies]
|
||||
mockall = "0.12.1"
|
||||
|
@@ -7,6 +7,8 @@ mod grpc;
|
||||
|
||||
mod app;
|
||||
|
||||
mod services;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
dotenv::dotenv().ok();
|
||||
|
1
crates/flux-releaser/src/services.rs
Normal file
1
crates/flux-releaser/src/services.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub mod release_manager;
|
25
crates/flux-releaser/src/services/release_manager.rs
Normal file
25
crates/flux-releaser/src/services/release_manager.rs
Normal file
@@ -0,0 +1,25 @@
|
||||
mod default;
|
||||
pub mod traits;
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct ReleaseManager {
|
||||
inner: Arc<dyn traits::ReleaseManager>,
|
||||
}
|
||||
|
||||
impl ReleaseManager {
|
||||
pub fn get_default() -> Self {
|
||||
Self {
|
||||
inner: Arc::new(default::ReleaseManager::new()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl std::ops::Deref for ReleaseManager {
|
||||
type Target = Arc<dyn traits::ReleaseManager>;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&self.inner
|
||||
}
|
||||
}
|
11
crates/flux-releaser/src/services/release_manager/default.rs
Normal file
11
crates/flux-releaser/src/services/release_manager/default.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
use super::traits;
|
||||
|
||||
pub struct ReleaseManager {}
|
||||
|
||||
impl ReleaseManager {
|
||||
pub fn new() -> Self {
|
||||
Self {}
|
||||
}
|
||||
}
|
||||
|
||||
impl traits::ReleaseManager for ReleaseManager {}
|
@@ -0,0 +1,4 @@
|
||||
#[cfg(test)]
|
||||
use mockall::{automock, mock, predicate::*};
|
||||
#[cfg_attr(test, automock)]
|
||||
pub trait ReleaseManager {}
|
Reference in New Issue
Block a user