Loading codegen/src/aws_conv.rs +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) { match name.as_str() { "SelectObjectContentRequest" => continue, "SelectObjectContentInput" => continue, "LifecycleExpiration" => continue, _ => {} } Loading codegen/src/dto.rs +11 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,17 @@ pub fn collect_rust_types(model: &smithy::Model, ops: &Operations) -> RustTypes } } // patch LifecycleExpiration { let Some(rust::Type::Struct(ty)) = space.get_mut("LifecycleExpiration") else { panic!() }; for field_name in ["days", "expired_object_delete_marker"] { let field = ty.fields.iter_mut().find(|x| x.name == field_name).unwrap(); field.default_value = None; field.option_type = true; } } // patch SelectObjectContent input { let Some(rust::Type::Struct(mut ty)) = space.remove("SelectObjectContentRequest") else { panic!() }; let request = rust::Struct { Loading crates/s3s-aws/src/conv/builtin.rs +28 −0 Original line number Diff line number Diff line Loading @@ -192,3 +192,31 @@ impl AwsConversion for s3s::dto::SelectObjectContentInput { .map_err(S3Error::internal_error) } } impl AwsConversion for s3s::dto::LifecycleExpiration { type Target = aws_sdk_s3::model::LifecycleExpiration; type Error = S3Error; fn try_from_aws(x: Self::Target) -> S3Result<Self> { Ok(Self { date: try_from_aws(x.date)?, days: ignore_default(x.days, 0), expired_object_delete_marker: ignore_default(x.expired_object_delete_marker, false), }) } fn try_into_aws(x: Self) -> S3Result<Self::Target> { let mut y = Self::Target::builder(); y = y.set_date(try_into_aws(x.date)?); y = y.set_days(x.days); y = y.set_expired_object_delete_marker(x.expired_object_delete_marker); Ok(y.build()) } } fn ignore_default<T: Eq + Copy>(val: T, default: T) -> Option<T> { if val == default { return None; } Some(val) } crates/s3s-aws/src/conv/generated.rs +0 −21 Original line number Diff line number Diff line Loading @@ -4185,27 +4185,6 @@ impl AwsConversion for s3s::dto::LambdaFunctionConfiguration { } } impl AwsConversion for s3s::dto::LifecycleExpiration { type Target = LifecycleExpiration; type Error = S3Error; fn try_from_aws(x: Self::Target) -> S3Result<Self> { Ok(Self { date: try_from_aws(x.date)?, days: try_from_aws(x.days)?, expired_object_delete_marker: try_from_aws(x.expired_object_delete_marker)?, }) } fn try_into_aws(x: Self) -> S3Result<Self::Target> { let mut y = Self::Target::builder(); y = y.set_date(try_into_aws(x.date)?); y = y.set_days(Some(try_into_aws(x.days)?)); y = y.set_expired_object_delete_marker(Some(try_into_aws(x.expired_object_delete_marker)?)); Ok(y.build()) } } impl AwsConversion for s3s::dto::LifecycleRule { type Target = LifecycleRule; type Error = S3Error; Loading crates/s3s/src/dto/generated.rs +8 −4 Original line number Diff line number Diff line Loading @@ -8252,11 +8252,11 @@ pub struct LifecycleExpiration { pub date: Option<Date>, /// <p>Indicates the lifetime, in days, of the objects that are subject to the rule. The value /// must be a non-zero positive integer.</p> pub days: Days, pub days: Option<Days>, /// <p>Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set /// to true, the delete marker will be expired; if set to false the policy takes no action. /// This cannot be specified with Days or Date in a Lifecycle Expiration Policy.</p> pub expired_object_delete_marker: ExpiredObjectDeleteMarker, pub expired_object_delete_marker: Option<ExpiredObjectDeleteMarker>, } impl fmt::Debug for LifecycleExpiration { Loading @@ -8265,8 +8265,12 @@ impl fmt::Debug for LifecycleExpiration { if let Some(ref val) = self.date { d.field("date", val); } d.field("days", &self.days); d.field("expired_object_delete_marker", &self.expired_object_delete_marker); if let Some(ref val) = self.days { d.field("days", val); } if let Some(ref val) = self.expired_object_delete_marker { d.field("expired_object_delete_marker", val); } d.finish_non_exhaustive() } } Loading Loading
codegen/src/aws_conv.rs +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ pub fn codegen(ops: &Operations, rust_types: &RustTypes, g: &mut Codegen) { match name.as_str() { "SelectObjectContentRequest" => continue, "SelectObjectContentInput" => continue, "LifecycleExpiration" => continue, _ => {} } Loading
codegen/src/dto.rs +11 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,17 @@ pub fn collect_rust_types(model: &smithy::Model, ops: &Operations) -> RustTypes } } // patch LifecycleExpiration { let Some(rust::Type::Struct(ty)) = space.get_mut("LifecycleExpiration") else { panic!() }; for field_name in ["days", "expired_object_delete_marker"] { let field = ty.fields.iter_mut().find(|x| x.name == field_name).unwrap(); field.default_value = None; field.option_type = true; } } // patch SelectObjectContent input { let Some(rust::Type::Struct(mut ty)) = space.remove("SelectObjectContentRequest") else { panic!() }; let request = rust::Struct { Loading
crates/s3s-aws/src/conv/builtin.rs +28 −0 Original line number Diff line number Diff line Loading @@ -192,3 +192,31 @@ impl AwsConversion for s3s::dto::SelectObjectContentInput { .map_err(S3Error::internal_error) } } impl AwsConversion for s3s::dto::LifecycleExpiration { type Target = aws_sdk_s3::model::LifecycleExpiration; type Error = S3Error; fn try_from_aws(x: Self::Target) -> S3Result<Self> { Ok(Self { date: try_from_aws(x.date)?, days: ignore_default(x.days, 0), expired_object_delete_marker: ignore_default(x.expired_object_delete_marker, false), }) } fn try_into_aws(x: Self) -> S3Result<Self::Target> { let mut y = Self::Target::builder(); y = y.set_date(try_into_aws(x.date)?); y = y.set_days(x.days); y = y.set_expired_object_delete_marker(x.expired_object_delete_marker); Ok(y.build()) } } fn ignore_default<T: Eq + Copy>(val: T, default: T) -> Option<T> { if val == default { return None; } Some(val) }
crates/s3s-aws/src/conv/generated.rs +0 −21 Original line number Diff line number Diff line Loading @@ -4185,27 +4185,6 @@ impl AwsConversion for s3s::dto::LambdaFunctionConfiguration { } } impl AwsConversion for s3s::dto::LifecycleExpiration { type Target = LifecycleExpiration; type Error = S3Error; fn try_from_aws(x: Self::Target) -> S3Result<Self> { Ok(Self { date: try_from_aws(x.date)?, days: try_from_aws(x.days)?, expired_object_delete_marker: try_from_aws(x.expired_object_delete_marker)?, }) } fn try_into_aws(x: Self) -> S3Result<Self::Target> { let mut y = Self::Target::builder(); y = y.set_date(try_into_aws(x.date)?); y = y.set_days(Some(try_into_aws(x.days)?)); y = y.set_expired_object_delete_marker(Some(try_into_aws(x.expired_object_delete_marker)?)); Ok(y.build()) } } impl AwsConversion for s3s::dto::LifecycleRule { type Target = LifecycleRule; type Error = S3Error; Loading
crates/s3s/src/dto/generated.rs +8 −4 Original line number Diff line number Diff line Loading @@ -8252,11 +8252,11 @@ pub struct LifecycleExpiration { pub date: Option<Date>, /// <p>Indicates the lifetime, in days, of the objects that are subject to the rule. The value /// must be a non-zero positive integer.</p> pub days: Days, pub days: Option<Days>, /// <p>Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set /// to true, the delete marker will be expired; if set to false the policy takes no action. /// This cannot be specified with Days or Date in a Lifecycle Expiration Policy.</p> pub expired_object_delete_marker: ExpiredObjectDeleteMarker, pub expired_object_delete_marker: Option<ExpiredObjectDeleteMarker>, } impl fmt::Debug for LifecycleExpiration { Loading @@ -8265,8 +8265,12 @@ impl fmt::Debug for LifecycleExpiration { if let Some(ref val) = self.date { d.field("date", val); } d.field("days", &self.days); d.field("expired_object_delete_marker", &self.expired_object_delete_marker); if let Some(ref val) = self.days { d.field("days", val); } if let Some(ref val) = self.expired_object_delete_marker { d.field("expired_object_delete_marker", val); } d.finish_non_exhaustive() } } Loading