diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-30 06:01:32 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-30 06:01:32 +0800 |
| commit | 8cbba8dc8900b98e23e6ee38d6f02537ba936c1c (patch) | |
| tree | c5f333d67871d25833b5ddc96f1d9aae9dcdd603 | |
| parent | 40183e431da97fe0377b2f2e2ea47b3a14376680 (diff) | |
use public modules
| -rw-r--r-- | Cargo.lock | 142 | ||||
| -rw-r--r-- | rola-cli/Cargo.toml | 11 | ||||
| -rw-r--r-- | rola-cli/build.rs | 3 | ||||
| -rw-r--r-- | rola-cli/src/bin/rola.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind/chains.rs | 34 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind/renderers.rs | 2 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/config.rs | 3 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/creation.rs | 8 | ||||
| -rw-r--r-- | rola-cli/src/error.rs | 10 | ||||
| -rw-r--r-- | rola-cli/src/error/space.rs | 20 | ||||
| -rw-r--r-- | rola-cli/src/lib.rs | 8 | ||||
| -rw-r--r-- | rola-cli/src/output.rs | 3 | ||||
| -rw-r--r-- | rola-cli/src/output/setup.rs | 21 |
15 files changed, 179 insertions, 107 deletions
@@ -77,6 +77,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] name = "bumpalo" version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -84,9 +90,9 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "cc" -version = "1.2.64" +version = "1.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" +checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" dependencies = [ "find-msvc-tools", "shlex", @@ -173,10 +179,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] +name = "defmt" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f" +dependencies = [ + "bitflags", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b" +dependencies = [ + "defmt-parser", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "defmt-parser" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" +dependencies = [ + "thiserror", +] + +[[package]] name = "env_filter" -version = "1.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" +checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217" dependencies = [ "log", "regex", @@ -184,9 +222,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" +checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6" dependencies = [ "anstream", "anstyle", @@ -291,10 +329,11 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.28" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102" +checksum = "34f877a98676d2fb664698d74cc6a51ce6c484ce8c770f05d0108ec9090aeb46" dependencies = [ + "defmt", "jiff-static", "log", "portable-atomic", @@ -304,9 +343,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.28" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" +checksum = "0666b5ab5ecaca213fc2a85b8c0083d9004e84ee2d5f9a7e0017aaf50986f25f" dependencies = [ "proc-macro2", "quote", @@ -315,9 +354,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.102" +version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31" +checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" dependencies = [ "cfg-if", "futures-util", @@ -332,11 +371,23 @@ checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e" [[package]] name = "just_template" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3edb658c34b10b69c4b3b58f7ba989cd09c82c0621dee1eef51843c2327225" +checksum = "4fb99a3c1dee7299c57b26ef927f15535da0fbc93d6deb1d1114cae1337be4fb" dependencies = [ "just_fmt", + "just_template_macros", +] + +[[package]] +name = "just_template_macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1471eb68722ecefeb71debdde2859e8725341f171d3f42b3a98a0862ad19416e" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -347,9 +398,9 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "log" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" +checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" [[package]] name = "memchr" @@ -360,7 +411,7 @@ checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "mingling" version = "0.2.0" -source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8" +source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835" dependencies = [ "mingling_core", "mingling_macros", @@ -371,10 +422,11 @@ dependencies = [ [[package]] name = "mingling_core" version = "0.2.0" -source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8" +source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835" dependencies = [ "just_fmt", "just_template", + "mingling_pathf", "serde", "serde_json", ] @@ -382,7 +434,7 @@ dependencies = [ [[package]] name = "mingling_macros" version = "0.2.0" -source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8" +source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835" dependencies = [ "just_fmt", "proc-macro2", @@ -391,6 +443,16 @@ dependencies = [ ] [[package]] +name = "mingling_pathf" +version = "0.2.0" +source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835" +dependencies = [ + "just_fmt", + "proc-macro2", + "syn", +] + +[[package]] name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -433,6 +495,28 @@ dependencies = [ ] [[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn", +] + +[[package]] name = "proc-macro2" version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -443,9 +527,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.45" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -823,9 +907,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "wasm-bindgen" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a" +checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" dependencies = [ "cfg-if", "once_cell", @@ -836,9 +920,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d" +checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -846,9 +930,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd" +checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" dependencies = [ "bumpalo", "proc-macro2", @@ -859,9 +943,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f" +checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" dependencies = [ "unicode-ident", ] diff --git a/rola-cli/Cargo.toml b/rola-cli/Cargo.toml index c9cf562..8ecc0f9 100644 --- a/rola-cli/Cargo.toml +++ b/rola-cli/Cargo.toml @@ -25,22 +25,25 @@ clap = { version = "4.6.1", features = ["derive"] } [dependencies.mingling] git = "https://github.com/mingling-rs/mingling.git" -rev = "4be889ac2dc5263ce03bb014de24916bee2e9aa8" +rev = "3888feded3cb83865d6161de642a1a298a7a5835" features = [ "parser", "extra_macros", "dispatch_tree", "comp", "clap", - "general_renderer" + "structural_renderer", + "pathf" ] [build-dependencies.mingling] git = "https://github.com/mingling-rs/mingling.git" -rev = "4be889ac2dc5263ce03bb014de24916bee2e9aa8" +rev = "3888feded3cb83865d6161de642a1a298a7a5835" features = [ "builds", - "comp" + "comp", + "dispatch_tree", + "pathf", ] [build-dependencies] diff --git a/rola-cli/build.rs b/rola-cli/build.rs index a409a17..e49c689 100644 --- a/rola-cli/build.rs +++ b/rola-cli/build.rs @@ -1,11 +1,12 @@ use std::path::Path; use std::process::Command; -use mingling::build::build_comp_scripts; +use mingling::build::{analyze_and_build_type_mapping, build_comp_scripts}; fn main() { build_version_info(); build_completion(); + analyze_and_build_type_mapping().unwrap(); } fn build_version_info() { diff --git a/rola-cli/src/bin/rola.rs b/rola-cli/src/bin/rola.rs index 3e97468..635aa7d 100644 --- a/rola-cli/src/bin/rola.rs +++ b/rola-cli/src/bin/rola.rs @@ -3,11 +3,12 @@ use std::{env::current_dir, process::exit}; use mingling::{ LazyInit, Program, macros::program_setup, - setup::{ExitCodeSetup, GeneralRendererSetup, HelpFlagSetup, QuietFlagSetup}, + setup::{ExitCodeSetup, HelpFlagSetup, QuietFlagSetup, StructuralRendererSetup}, }; use rola_cli::{ ThisProgram, locale, - output::{ColorOutputSetup, EnvLoggerSetup}, + output::setup::ColorOutputSetup, + output::setup::EnvLoggerSetup, res::{bucket::ResBucketWithoutProtocol, current_dir::ResCurrentDir, overwrite::ResOverwrite}, }; @@ -39,7 +40,7 @@ fn main() { program.with_resource(ResBucketWithoutProtocol::lazy_default()); // Setup - program.with_setup(GeneralRendererSetup); + program.with_setup(StructuralRendererSetup); program.with_setup(HelpFlagSetup::new(["-h", "--help"])); program.with_setup(StandardOutputSetup); program.with_setup(ExitCodeSetup::default()); diff --git a/rola-cli/src/bucket_mgr.rs b/rola-cli/src/bucket_mgr.rs index 82a76d4..db7a6dd 100644 --- a/rola-cli/src/bucket_mgr.rs +++ b/rola-cli/src/bucket_mgr.rs @@ -1,4 +1,3 @@ -mod creation; -pub use creation::*; -mod bind; -pub use bind::*; +pub mod bind; +pub mod config; +pub mod creation; diff --git a/rola-cli/src/bucket_mgr/bind.rs b/rola-cli/src/bucket_mgr/bind.rs index fefebd6..a334258 100644 --- a/rola-cli/src/bucket_mgr/bind.rs +++ b/rola-cli/src/bucket_mgr/bind.rs @@ -5,11 +5,8 @@ use mingling::{ use rorolala::bucket::bind::BucketBind; use serde::Serialize; -mod chains; -pub use chains::*; - -mod renderers; -pub use renderers::*; +pub mod chains; +pub mod renderers; pub const EC_BUCKET_BIND_INDEX_NOT_PROVIDED: i32 = 251; pub const EC_BUCKET_BIND_INDEX_NOT_FOUND: i32 = 252; diff --git a/rola-cli/src/bucket_mgr/bind/chains.rs b/rola-cli/src/bucket_mgr/bind/chains.rs index 881e5ba..b8037e2 100644 --- a/rola-cli/src/bucket_mgr/bind/chains.rs +++ b/rola-cli/src/bucket_mgr/bind/chains.rs @@ -1,16 +1,20 @@ use crate::{ Next, - bucket_mgr::{ + bucket_mgr::bind::{ EntryBucketBind, ErrorBucketBindIndexNotFound, ErrorBucketBindIndexNotProvided, ResultAllBucketBind, ResultBucketOperated, ResultEnumBucketOperation::{self, Set}, ResultOneBucketBind, StateBucketBindListAll, StateBucketBindListSpecified, StateBucketBindRemove, StateBucketBindSet, }, - error::{ErrorRequireOverwrite, ErrorSpace}, + error::require_overwrite::ErrorRequireOverwrite, + error::space::ErrorSpace, res::{bucket::ResBucketWithoutProtocol, overwrite::ResOverwrite}, }; -use mingling::{LazyRes, macros::chain}; +use mingling::{ + Groupped, LazyRes, + macros::{chain, route}, +}; use rorolala::bucket::{self}; use shared_functions::info; @@ -55,10 +59,10 @@ pub fn handle_state_bucket_bind_set( let (index, url) = set.inner; let bucket_space_ref = &bucket.get_ref().space; - let exist = match bucket::bind::check_bucket_bind_exists(bucket_space_ref, index) { - Ok(exists) => exists, - Err(e) => return ErrorSpace::from(e).to_chain(), - }; + let exist = route!(bucket::bind::check_bucket_bind_exists( + bucket_space_ref, + index + )); // When the bind already exists but overwrite is not specified // Dispatch to ErrorRequireOverwrite @@ -88,9 +92,7 @@ pub fn handle_state_bucket_bind_remove( let index = remove.inner; let bucket_space_ref = &bucket.get_ref().space; - if let Err(space_error) = bucket::bind::remove_bucket_bind(bucket_space_ref, index) { - return ErrorSpace::from(space_error).to_chain(); - } + route!(bucket::bind::remove_bucket_bind(bucket_space_ref, index)); ResultBucketOperated { operation: ResultEnumBucketOperation::Remove, @@ -107,10 +109,9 @@ pub fn handle_state_bucket_bind_list_specified( ) -> Next { let index = index.inner; let bucket_space_ref = &bucket.get_ref().space; - let bind_info = match bucket::bind::read_bucket_bind(bucket_space_ref, index) { - Err(e) => return ErrorSpace::from(e).to_chain(), - Ok(None) => return ErrorBucketBindIndexNotFound::new(index).to_render(), - Ok(Some(r)) => r, + let bind_info = match route!(bucket::bind::read_bucket_bind(bucket_space_ref, index)) { + None => return ErrorBucketBindIndexNotFound::new(index).to_render(), + Some(r) => r, }; ResultOneBucketBind { @@ -127,10 +128,7 @@ pub fn handle_state_bucket_bind_list_all( ) -> Next { let bucket_space_ref = &bucket.get_ref().space; info!("Reading all bucket binds from space"); - let bind_list = match bucket::bind::read_bucket_binds(bucket_space_ref) { - Err(e) => return ErrorSpace::from(e).to_chain(), - Ok(r) => r, - }; + let bind_list = route!(bucket::bind::read_bucket_binds(bucket_space_ref)); info!("Read {} bucket binds", bind_list.len()); ResultAllBucketBind { bind_list }.to_render() } diff --git a/rola-cli/src/bucket_mgr/bind/renderers.rs b/rola-cli/src/bucket_mgr/bind/renderers.rs index 18ae092..cf12b7f 100644 --- a/rola-cli/src/bucket_mgr/bind/renderers.rs +++ b/rola-cli/src/bucket_mgr/bind/renderers.rs @@ -4,7 +4,7 @@ use mingling::{ }; use crate::{ - bucket_mgr::{ + bucket_mgr::bind::{ EC_BUCKET_BIND_INDEX_NOT_FOUND, EC_BUCKET_BIND_INDEX_NOT_PROVIDED, ErrorBucketBindIndexNotFound, ErrorBucketBindIndexNotProvided, ResultAllBucketBind, ResultBucketOperated, ResultEnumBucketOperation, ResultOneBucketBind, diff --git a/rola-cli/src/bucket_mgr/config.rs b/rola-cli/src/bucket_mgr/config.rs new file mode 100644 index 0000000..b30620b --- /dev/null +++ b/rola-cli/src/bucket_mgr/config.rs @@ -0,0 +1,3 @@ +use mingling::macros::dispatcher; + +dispatcher!("bucket.config"); diff --git a/rola-cli/src/bucket_mgr/creation.rs b/rola-cli/src/bucket_mgr/creation.rs index 2394228..fd794e8 100644 --- a/rola-cli/src/bucket_mgr/creation.rs +++ b/rola-cli/src/bucket_mgr/creation.rs @@ -10,7 +10,7 @@ use rorolala::bucket::{Bucket, NoProtocol}; use serde::Serialize; use space_system::{Space, SpaceError, SpaceRoot, find_space_root_with}; -use crate::{Next, error::ErrorIo, locale::I18nBucketManager, res::current_dir::ResCurrentDir}; +use crate::{Next, error::io::ErrorIo, locale::I18nBucketManager, res::current_dir::ResCurrentDir}; pub const EC_BUCKET_CREATE_DIR_NOT_EMPTY: i32 = 2400; pub const EC_BUCKET_PATH_NOT_PROVIDED: i32 = 2401; @@ -46,7 +46,7 @@ pub fn handle_bucket_init(_args: EntryBucketInit, cwd: &mut ResCurrentDir) -> Ne pub fn handle_bucket_create(args: EntryBucketCreate) -> Next { let join = route! { args.pick_or_route::<PathBuf, _>((), - ErrorBucketPathNotProvided::new(()).to_render() + ErrorBucketPathNotProvided::new(()) ).unpack() }; StateBucketCreationPrecheck::new(join).to_chain() @@ -80,9 +80,7 @@ pub fn handle_state_bucket_creation_precheck(create: StateBucketCreationPrecheck pub fn handle_state_bucket_creation(create: StateBucketCreation) -> Next { let path = create.inner; - route! { - create_dir_all(&path).map_err(|e| ErrorIo::from(e).to_render()) - }; + route!(create_dir_all(&path).map_err(|e| ErrorIo::from(e))); // Use a protocol-less Bucket as a temporary Space for initialization let bucket_space = Space::<Bucket<NoProtocol>>::new(Bucket::<NoProtocol>::new_local()); diff --git a/rola-cli/src/error.rs b/rola-cli/src/error.rs index 15bdc70..3271744 100644 --- a/rola-cli/src/error.rs +++ b/rola-cli/src/error.rs @@ -1,6 +1,4 @@ -mod io; -pub use io::*; -mod space; -pub use space::*; -mod require_overwrite; -pub use require_overwrite::*; +pub mod io; +pub mod require_overwrite; +pub mod space; +
\ No newline at end of file diff --git a/rola-cli/src/error/space.rs b/rola-cli/src/error/space.rs index fb0a560..b4a011d 100644 --- a/rola-cli/src/error/space.rs +++ b/rola-cli/src/error/space.rs @@ -1,26 +1,22 @@ use mingling::{ Groupped, - macros::{chain, r_println, renderer}, + macros::{chain, group, r_println, renderer}, res::ResExitCode, }; -use serde::Serialize; use space_system::SpaceError; -use crate::{Next, error::ErrorIo, locale::errors::I18nSpaceError}; +use crate::{Next, error::io::ErrorIo, locale::errors::I18nSpaceError}; pub const EC_SPACE_NOT_FOUND: i32 = 2600; pub const EC_SPACE_PATH_FORMAT: i32 = 2601; pub const EC_SPACE_REQUIRE_EMPTY_DIR: i32 = 2602; pub const EC_SPACE_CONFIG_ALREADY_EXIST: i32 = 2603; -#[derive(Serialize, Groupped)] -pub struct ErrorSpace { - pub error: SpaceError, -} +group!(ErrorSpace = SpaceError); #[chain] pub fn handle_error_space(err: ErrorSpace) -> Next { - match err.error { + match err { // Forward to ErrorIo SpaceError::Io(error) => ErrorIo::from(error).to_render(), @@ -30,7 +26,7 @@ pub fn handle_error_space(err: ErrorSpace) -> Next { #[renderer] pub fn render_error_space(err: ErrorSpace, ec: &mut ResExitCode) { - match &err.error { + match &err { SpaceError::SpaceNotFound => { r_println!("{}", I18nSpaceError::space_not_found().trim()); ec.exit_code = EC_SPACE_NOT_FOUND; @@ -56,9 +52,3 @@ pub fn render_error_space(err: ErrorSpace, ec: &mut ResExitCode) { } } } - -impl From<SpaceError> for ErrorSpace { - fn from(error: SpaceError) -> Self { - Self { error } - } -} diff --git a/rola-cli/src/lib.rs b/rola-cli/src/lib.rs index b472169..02c479a 100644 --- a/rola-cli/src/lib.rs +++ b/rola-cli/src/lib.rs @@ -5,16 +5,12 @@ use mingling::{ res::ResExitCode, }; +pub mod bucket_mgr; +pub mod error; pub mod output; pub mod res; pub mod tokio_wrapper; -mod bucket_mgr; -use bucket_mgr::*; - -mod error; -use error::*; - use crate::output::display::markdown; pub const EC_COMMAND_NOT_FOUND: i32 = 1000; diff --git a/rola-cli/src/output.rs b/rola-cli/src/output.rs index 65cafed..3e93bd7 100644 --- a/rola-cli/src/output.rs +++ b/rola-cli/src/output.rs @@ -2,5 +2,4 @@ pub mod ansi_control; pub mod display; pub mod env_logger; -mod setup; -pub use setup::*; +pub mod setup; diff --git a/rola-cli/src/output/setup.rs b/rola-cli/src/output/setup.rs index 880b236..8e04eb9 100644 --- a/rola-cli/src/output/setup.rs +++ b/rola-cli/src/output/setup.rs @@ -39,15 +39,20 @@ pub fn env_logger_setup(program: &mut Program<ThisProgram>) { // Add Hook program.with_hook( ProgramHook::<ThisProgram>::empty() - .on_begin(|| info!("[INFO] Program is begin")) - .on_pre_dispatch(|args| info!("[INFO] Pre dispatch: {args:?}")) - .on_post_dispatch(|c: &_| info!("[INFO] Post dispatch: {c:?}")) - .on_pre_chain(|c: &_, _| { - info!("[INFO] Pre chain: {c}"); + .on_begin::<_, ()>(|_| println!("[DEBUG] Program is begin")) + .on_pre_dispatch(|info| { + println!("[DEBUG] Pre dispatch: {}", info.arguments.join(" ")) }) - .on_post_chain(|any_output| info!("[INFO] Post chain: {}", any_output.member_id)) - .on_pre_render(|c: &_, _| info!("[INFO] Pre render: {c}")) - .on_post_render(|_| info!("[INFO] Post render")), + .on_post_dispatch(|info| println!("[DEBUG] Post dispatch: {}", info.entry)) + .on_pre_chain(|info| { + println!("[DEBUG] Pre chain: {}", info.input); + }) + .on_post_chain(|info| println!("[DEBUG] Post chain: {}", info.output.member_id)) + .on_finish(|_| { + println!("[DEBUG] Loop end"); + }) + .on_pre_render(|info| println!("[DEBUG] Pre render: {}", info.input)) + .on_post_render(|_| println!("[DEBUG] Post render")), ); } |
