Skip to content

Commit 3ff167e

Browse files
authored
Refactor/module code layout (#19)
* refactor: move source files to adopt new repo layout * refactor: export new crate Result * refactor: adopt new standard for using errors module
1 parent 390af3b commit 3ff167e

File tree

37 files changed

+472
-292
lines changed

37 files changed

+472
-292
lines changed

examples/apps/cronjob_service/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ pub struct Service;
88

99
#[async_trait::async_trait]
1010
impl cronjob::CronjobService for Service {
11-
async fn handler(&mut self, ctx: Arc<mikros::service::context::Context>) -> Result<(), mikros::errors::ServiceError> {
11+
async fn handler(&mut self, ctx: Arc<mikros::service::context::Context>) -> mikros::errors::Result<()> {
1212
ctx.logger().info("handler executed");
1313

1414
simple_api::execute_on(ctx.clone(), |api| {

examples/apps/grpc_with_lifecycle/src/main.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ pub struct Context {
6868

6969
#[tonic::async_trait]
7070
impl lifecycle::Lifecycle for Context {
71-
async fn on_start(&mut self, ctx: Arc<context::Context>) -> Result<(), mikros::errors::ServiceError> {
71+
async fn on_start(&mut self, ctx: Arc<context::Context>) -> mikros::errors::Result<()> {
7272
println!("grpc on_start called");
7373
self.value = 42;
7474
self.greeter = Some(link_grpc_service!(ctx, GreeterClient, "greeter"));
7575
Ok(())
7676
}
7777

78-
async fn on_finish(&self) -> Result<(), mikros::errors::ServiceError> {
78+
async fn on_finish(&self) -> mikros::errors::Result<()> {
7979
println!("grpc on_finish called");
8080
Ok(())
8181
}

examples/apps/http_with_lifecycle/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::Arc;
33
use axum::extract::State;
44
use axum::routing::get;
55
use futures::lock::Mutex;
6-
use mikros::errors::ServiceError;
6+
use mikros::errors;
77
use mikros::http::ServiceState;
88
use mikros::service::builder::ServiceBuilder;
99
use mikros::service::lifecycle::Lifecycle;
@@ -24,13 +24,13 @@ impl Lifecycle for AppState {
2424
async fn on_start(
2525
&mut self,
2626
_ctx: Arc<mikros::service::context::Context>,
27-
) -> Result<(), ServiceError> {
27+
) -> errors::Result<()> {
2828
println!("service on_start");
2929
self.value = 42;
3030
Ok(())
3131
}
3232

33-
async fn on_finish(&self) -> Result<(), ServiceError> {
33+
async fn on_finish(&self) -> errors::Result<()> {
3434
println!("service on_finish");
3535
Ok(())
3636
}

examples/apps/http_with_lifecycle_and_state/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::Arc;
33
use axum::extract::State;
44
use axum::routing::get;
55
use futures::lock::Mutex;
6-
use mikros::errors::ServiceError;
6+
use mikros::errors;
77
use mikros::http::ServiceState;
88
use mikros::service::builder::ServiceBuilder;
99
use mikros::service::lifecycle::Lifecycle;
@@ -24,13 +24,13 @@ impl Lifecycle for AppState {
2424
async fn on_start(
2525
&mut self,
2626
_ctx: Arc<mikros::service::context::Context>,
27-
) -> Result<(), ServiceError> {
27+
) -> errors::Result<()> {
2828
println!("service on_start");
2929
self.value = 42;
3030
Ok(())
3131
}
3232

33-
async fn on_finish(&self) -> Result<(), ServiceError> {
33+
async fn on_finish(&self) -> errors::Result<()> {
3434
println!("service on_finish");
3535
Ok(())
3636
}

examples/apps/native/src/service.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ impl Service {
1414

1515
#[async_trait::async_trait]
1616
impl mikros::service::lifecycle::Lifecycle for Service {
17-
async fn on_start(&mut self, _ctx: Arc<Context>) -> Result<(), merrors::ServiceError> {
17+
async fn on_start(&mut self, _ctx: Arc<Context>) -> merrors::Result<()> {
1818
println!("lifecycle on_start");
1919
Ok(())
2020
}
2121

22-
async fn on_finish(&self) -> Result<(), merrors::ServiceError> {
22+
async fn on_finish(&self) -> merrors::Result<()> {
2323
println!("lifecycle on_finish");
2424
Ok(())
2525
}
2626
}
2727

2828
#[async_trait::async_trait]
2929
impl mikros::service::native::NativeService for Service {
30-
async fn start(&self, ctx: Arc<Context>) -> Result<(), merrors::ServiceError> {
30+
async fn start(&self, ctx: Arc<Context>) -> merrors::Result<()> {
3131
ctx.logger().info("Start native service");
3232
// Err(merrors::Error::InternalServiceError("some internal error happened".to_string()))
3333

examples/apps/script/src/service.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ impl Service {
1414

1515
#[async_trait::async_trait]
1616
impl mikros::service::lifecycle::Lifecycle for Service {
17-
async fn on_start(&mut self, _ctx: Arc<Context>) -> Result<(), merrors::ServiceError> {
17+
async fn on_start(&mut self, _ctx: Arc<Context>) -> merrors::Result<()> {
1818
println!("lifecycle on_start");
1919
Ok(())
2020
}
2121

22-
async fn on_finish(&self) -> Result<(), merrors::ServiceError> {
22+
async fn on_finish(&self) -> merrors::Result<()> {
2323
println!("lifecycle on_finish");
2424
Ok(())
2525
}
2626
}
2727

2828
#[async_trait::async_trait]
2929
impl mikros::service::script::ScriptService for Service {
30-
async fn run(&self, ctx: Arc<Context>) -> Result<(), merrors::ServiceError> {
30+
async fn run(&self, ctx: Arc<Context>) -> merrors::Result<()> {
3131
ctx.logger().info("Start script service");
3232
example::execute_on(ctx, |api| {
3333
api.do_something();

examples/features/example/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::Arc;
33

44
use mikros::definition::Definitions;
55
use mikros::env::Env;
6-
use mikros::{errors as merrors, impl_feature_public_api, plugin, serde_json};
6+
use mikros::{errors, impl_feature_public_api, plugin, serde_json};
77
use mikros::service::context::Context;
88

99
/// The feature public API.
@@ -30,12 +30,12 @@ impl plugin::feature::Feature for Example {
3030
true
3131
}
3232

33-
fn can_be_initialized(&self, _definitions: Arc<Definitions>, _envs: Arc<Env>) -> Result<bool, merrors::ServiceError> {
33+
fn can_be_initialized(&self, _definitions: Arc<Definitions>, _envs: Arc<Env>) -> errors::Result<bool> {
3434
println!("example can_be_initialized");
3535
Ok(true)
3636
}
3737

38-
async fn initialize(&mut self, _: Arc<Context>) -> Result<(), merrors::ServiceError> {
38+
async fn initialize(&mut self, _: Arc<Context>) -> errors::Result<()> {
3939
println!("example initialized");
4040
Ok(())
4141
}

examples/features/simple_api/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::any::Any;
22
use std::sync::Arc;
33

44
use mikros::env::Env;
5-
use mikros::{errors as merrors, impl_feature_public_api, serde_json};
5+
use mikros::{errors, impl_feature_public_api, serde_json};
66
use mikros::plugin;
77
use mikros::service::context::Context;
88
use serde_derive::Deserialize;
@@ -41,7 +41,7 @@ impl plugin::feature::Feature for Example {
4141
self.definitions.enabled
4242
}
4343

44-
fn can_be_initialized(&self, definitions: Arc<mikros::definition::Definitions>, _: Arc<Env>) -> Result<bool, merrors::ServiceError> {
44+
fn can_be_initialized(&self, definitions: Arc<mikros::definition::Definitions>, _: Arc<Env>) -> errors::Result<bool> {
4545
println!("simple_api can_be_initialized");
4646

4747
if let Some(defs) = definitions.load_feature::<Definitions>(self.name()) {
@@ -51,7 +51,7 @@ impl plugin::feature::Feature for Example {
5151
Ok(false)
5252
}
5353

54-
async fn initialize(&mut self, ctx: Arc<Context>) -> Result<(), merrors::ServiceError> {
54+
async fn initialize(&mut self, ctx: Arc<Context>) -> errors::Result<()> {
5555
println!("simple_api initialize");
5656
ctx.logger().info("simple_api initialize");
5757

examples/services/cronjob/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ use std::sync::Arc;
55

66
use mikros::definition::ServiceKind;
77
use mikros::env::Env;
8-
use mikros::{errors as merrors, plugin, Mutex, serde_json};
8+
use mikros::{errors, plugin, Mutex, serde_json};
99
use mikros::service::context::Context;
1010
use mikros::service::lifecycle::Lifecycle;
1111
use serde_derive::Deserialize;
1212

1313
#[async_trait::async_trait]
1414
pub trait CronjobService: Send + Sync {
15-
async fn handler(&mut self, ctx: Arc<Context>) -> Result<(), merrors::ServiceError>;
15+
async fn handler(&mut self, ctx: Arc<Context>) -> errors::Result<()>;
1616
}
1717

1818
#[derive(Clone)]
@@ -62,7 +62,7 @@ impl plugin::service::Service for Cronjob {
6262
definitions: Arc<mikros::definition::Definitions>,
6363
_: Arc<Env>,
6464
_: HashMap<String, serde_json::Value>,
65-
) -> Result<(), merrors::ServiceError> {
65+
) -> errors::Result<()> {
6666
self.definitions = definitions.load_service(self.kind());
6767
if self.definitions.is_none() {
6868
// TODO: return error here?
@@ -75,7 +75,7 @@ impl plugin::service::Service for Cronjob {
7575
&self,
7676
ctx: Arc<Context>,
7777
_shutdown_rx: tokio::sync::watch::Receiver<()>,
78-
) -> Result<(), merrors::ServiceError> {
78+
) -> errors::Result<()> {
7979
// A real cronjob service would schedule the task to execute using
8080
// definitions settings. We just call the handler...
8181
self.service.lock().await.handler(ctx.clone()).await

src/args/mod.rs renamed to src/args.rs

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
#[derive(Debug)]
32
pub(crate) struct Args {
43
pub config_path: Option<String>,
@@ -17,7 +16,7 @@ impl Args {
1716
}
1817

1918
args
20-
},
19+
}
2120
Err(msg) => {
2221
eprintln!("{}", msg);
2322
std::process::exit(1);
@@ -43,15 +42,13 @@ impl Args {
4342
"-h" | "--help" => {
4443
config.help = true;
4544
}
46-
"--config" => {
47-
match iter.peek() {
48-
None => return Err("error: --config option requires a file path".to_string()),
49-
Some((_, next_arg)) => {
50-
config.config_path = Some(next_arg.to_string());
51-
iter.next();
52-
}
45+
"--config" => match iter.peek() {
46+
None => return Err("error: --config option requires a file path".to_string()),
47+
Some((_, next_arg)) => {
48+
config.config_path = Some(next_arg.to_string());
49+
iter.next();
5350
}
54-
}
51+
},
5552
_ => {
5653
return Err(format!("unknown argument: {}", arg));
5754
}
@@ -92,18 +89,28 @@ mod tests {
9289

9390
#[test]
9491
fn test_config_option() {
95-
let args = vec!["service".to_string(), "--config".to_string(), "/path/to/service.toml".to_string()];
92+
let args = vec![
93+
"service".to_string(),
94+
"--config".to_string(),
95+
"/path/to/service.toml".to_string(),
96+
];
9697
let result = Args::parse(&args);
9798
assert!(result.is_ok());
98-
assert_eq!(result.unwrap().config_path.unwrap(), "/path/to/service.toml");
99+
assert_eq!(
100+
result.unwrap().config_path.unwrap(),
101+
"/path/to/service.toml"
102+
);
99103
}
100104

101105
#[test]
102106
fn test_missing_config_path_option() {
103107
let args = vec!["service".to_string(), "--config".to_string()];
104108
let result = Args::parse(&args);
105109
assert!(result.is_err());
106-
assert_eq!(result.unwrap_err(), "error: --config option requires a file path");
110+
assert_eq!(
111+
result.unwrap_err(),
112+
"error: --config option requires a file path"
113+
);
107114
}
108115

109116
#[test]
@@ -113,4 +120,4 @@ mod tests {
113120
assert!(result.is_err());
114121
assert_eq!(result.err().unwrap(), "unknown argument: --unknown");
115122
}
116-
}
123+
}

0 commit comments

Comments
 (0)