Commit f1f3ac0c authored by Nugine's avatar Nugine
Browse files

feat(s3s/dto): add derive PartialEq

parent 68f174f6
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ fn codegen_str_enum(ty: &rust::StrEnum, _rust_types: &RustTypes) {

fn codegen_struct_enum(ty: &rust::StructEnum, _rust_types: &RustTypes) {
    codegen_doc(ty.doc.as_deref());
    g!("#[derive(Debug, Clone)]");
    g!("#[derive(Debug, Clone, PartialEq)]");
    g!("#[non_exhaustive]");
    g!("pub enum {} {{", ty.name);

@@ -541,6 +541,9 @@ fn struct_derives(ty: &rust::Struct, rust_types: &RustTypes) -> Vec<&'static str
    if can_derive_default(ty, rust_types) {
        derives.push("Default");
    }
    if can_derive_partial_eq(ty, rust_types) {
        derives.push("PartialEq");
    }
    derives
}

@@ -553,6 +556,15 @@ fn can_derive_clone(ty: &rust::Struct, _rust_types: &RustTypes) -> bool {
    })
}

fn can_derive_partial_eq(ty: &rust::Struct, _rust_types: &RustTypes) -> bool {
    ty.fields.iter().all(|field| {
        if matches!(field.type_.as_str(), "StreamingBlob" | "SelectObjectContentEventStream") {
            return false;
        }
        true
    })
}

fn can_derive_default(ty: &rust::Struct, rust_types: &RustTypes) -> bool {
    ty.fields.iter().all(|field| is_default_field(field, rust_types))
}
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ use crate::path;
use std::fmt::Write;

/// x-amz-copy-source
#[derive(Debug, Clone)]
#[derive(Debug, Clone, PartialEq)]
pub enum CopySource {
    /// bucket repr
    Bucket {
+1 −1
Original line number Diff line number Diff line
#[derive(Debug, Clone)]
#[derive(Debug, Clone, PartialEq)]
pub struct Event(String);

impl From<String> for Event {
+328 −328

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ use time::format_description::well_known::Rfc3339;
use time::format_description::FormatItem;
use time::macros::format_description;

#[derive(Debug, Clone)]
#[derive(Debug, Clone, PartialEq)]
pub struct Timestamp(time::OffsetDateTime);

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
Loading