#[cfg_attr(docsrs, doc(cfg(feature = "unstable-stream")))]
#[derive(Clone, Debug, Default, PartialEq)]
#[non_exhaustive]
pub struct ReopenAppendableObjectRequest {
pub bucket: String,
pub object: String,
pub generation: i64,
pub if_metageneration_match: Option<i64>,
pub if_metageneration_not_match: Option<i64>,
pub routing_token: Option<String>,
pub write_handle: Option<bytes::Bytes>,
pub params: Option<crate::model::CommonObjectRequestParams>,
}
impl From<ReopenAppendableObjectRequest> for crate::google::storage::v2::AppendObjectSpec {
fn from(value: ReopenAppendableObjectRequest) -> Self {
Self {
bucket: value.bucket,
object: value.object,
generation: value.generation,
if_metageneration_match: value.if_metageneration_match,
if_metageneration_not_match: value.if_metageneration_not_match,
routing_token: value.routing_token,
write_handle: value
.write_handle
.map(|h| crate::google::storage::v2::BidiWriteHandle { handle: h }),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_reopen_appendable_object_request_from() {
let req = ReopenAppendableObjectRequest {
bucket: "my-bucket".into(),
object: "my-object".into(),
generation: 42,
if_metageneration_match: Some(1),
if_metageneration_not_match: Some(2),
routing_token: Some("token".into()),
write_handle: Some(bytes::Bytes::from("handle")),
params: None,
};
let spec = crate::google::storage::v2::AppendObjectSpec::from(req);
assert_eq!(spec.bucket, "my-bucket");
assert_eq!(spec.object, "my-object");
assert_eq!(spec.generation, 42);
assert_eq!(spec.if_metageneration_match, Some(1));
assert_eq!(spec.if_metageneration_not_match, Some(2));
assert_eq!(spec.routing_token, Some("token".into()));
assert_eq!(
spec.write_handle,
Some(crate::google::storage::v2::BidiWriteHandle {
handle: bytes::Bytes::from("handle")
})
);
}
}