summaryrefslogtreecommitdiff
path: root/rola-cli/src/bucket_mgr
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-30 06:01:32 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-30 06:01:32 +0800
commit8cbba8dc8900b98e23e6ee38d6f02537ba936c1c (patch)
treec5f333d67871d25833b5ddc96f1d9aae9dcdd603 /rola-cli/src/bucket_mgr
parent40183e431da97fe0377b2f2e2ea47b3a14376680 (diff)
refactor(rola-cli): replace GeneralRenderer with StructuralRenderer andHEADmaster
use public modules
Diffstat (limited to 'rola-cli/src/bucket_mgr')
-rw-r--r--rola-cli/src/bucket_mgr/bind.rs7
-rw-r--r--rola-cli/src/bucket_mgr/bind/chains.rs34
-rw-r--r--rola-cli/src/bucket_mgr/bind/renderers.rs2
-rw-r--r--rola-cli/src/bucket_mgr/config.rs3
-rw-r--r--rola-cli/src/bucket_mgr/creation.rs8
5 files changed, 25 insertions, 29 deletions
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());