mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-29 16:37:07 +00:00
init bucketmeta struct
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
use std::{collections::HashSet, default};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashSet;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
pub struct ActionSet(HashSet<Action>);
|
||||
|
||||
impl ActionSet {}
|
||||
|
||||
// 定义Action枚举类型
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Default)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize, Default, Hash)]
|
||||
pub enum Action {
|
||||
AbortMultipartUpload,
|
||||
CreateBucket,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use super::{
|
||||
@@ -8,7 +9,7 @@ use super::{
|
||||
resource::ResourceSet,
|
||||
};
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
pub struct BucketPolicyArgs {
|
||||
account_name: String,
|
||||
groups: Vec<String>,
|
||||
@@ -19,7 +20,7 @@ pub struct BucketPolicyArgs {
|
||||
object_name: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
pub struct BPStatement {
|
||||
sid: String,
|
||||
effect: Effect,
|
||||
@@ -31,7 +32,7 @@ pub struct BPStatement {
|
||||
conditions: Option<Functions>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
pub struct BucketPolicy {
|
||||
pub id: String,
|
||||
pub version: String,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
use super::name::Name;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{
|
||||
collections::{HashMap, HashSet},
|
||||
fmt::{Debug, Display},
|
||||
fmt::Debug,
|
||||
};
|
||||
|
||||
use super::name::Name;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Key {
|
||||
name: String,
|
||||
@@ -15,7 +15,7 @@ pub struct Key {
|
||||
pub type ValueSet = HashSet<String>;
|
||||
|
||||
// 定义Function trait
|
||||
pub trait Function {
|
||||
pub trait FunctionApi {
|
||||
// evaluate方法
|
||||
fn evaluate(&self, values: &HashMap<Key, ValueSet>) -> bool;
|
||||
|
||||
@@ -32,34 +32,24 @@ pub trait Function {
|
||||
fn to_map(&self) -> HashMap<Key, ValueSet>;
|
||||
|
||||
// clone方法
|
||||
fn clone(&self) -> Box<dyn Function>;
|
||||
fn clone(&self) -> Box<Function>;
|
||||
}
|
||||
|
||||
impl Display for dyn Function {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "{:?}", self.to_string())
|
||||
}
|
||||
}
|
||||
// impl Debug for dyn Function {
|
||||
// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
// write!(f, "{:?}", self.to_string())
|
||||
// }
|
||||
// }
|
||||
|
||||
impl Debug for dyn Function {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "{:?}", self.to_string())
|
||||
}
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
enum Function {
|
||||
#[default]
|
||||
Test,
|
||||
}
|
||||
|
||||
// 定义Functions类型
|
||||
pub struct Functions(Vec<Box<dyn Function>>);
|
||||
|
||||
impl Display for Functions {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "[")?;
|
||||
for v in self.0.iter() {
|
||||
write!(f, "{:?}", v.to_string())?;
|
||||
}
|
||||
|
||||
write!(f, "]")
|
||||
}
|
||||
}
|
||||
#[derive(Deserialize, Serialize, Default)]
|
||||
pub struct Functions(Vec<Function>);
|
||||
|
||||
impl Debug for Functions {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::str::FromStr;
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Default)]
|
||||
pub enum Effect {
|
||||
#[default]
|
||||
Allow,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashSet;
|
||||
|
||||
#[derive(Debug, Clone, Default)]
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
|
||||
pub struct Principal {
|
||||
aws: HashSet<String>,
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
use std::{collections::HashSet, default};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashSet;
|
||||
|
||||
// 定义ResourceARNType枚举类型
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Deserialize, Serialize, Default)]
|
||||
pub enum ResourceARNType {
|
||||
#[default]
|
||||
UnknownARN,
|
||||
@@ -14,11 +15,11 @@ const RESOURCE_ARN_PREFIX: &str = "arn:aws:s3:::";
|
||||
const RESOURCE_ARN_KMS_PREFIX: &str = "arn:rustfs:kms::::";
|
||||
|
||||
// 定义Resource结构体
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default, PartialEq, Eq, Hash)]
|
||||
pub struct Resource {
|
||||
pattern: String,
|
||||
r#type: ResourceARNType,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||
pub struct ResourceSet(HashSet<Resource>);
|
||||
|
||||
Reference in New Issue
Block a user