google-cloud-pubsub 0.31.0-preview

Google Cloud Client Libraries for Rust - Pub/Sub
Documentation
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by sidekick. DO NOT EDIT.

impl gaxi::prost::ToProto<PubsubMessage> for crate::generated::gapic_dataplane::model::PubsubMessage {
    type Output = PubsubMessage;
    fn to_proto(self) -> std::result::Result<PubsubMessage, gaxi::prost::ConvertError> {
        Ok(Self::Output {
            data: self.data.to_proto()?,
            attributes: self.attributes
                .into_iter()
                .map(|(k, v)| {
                    gaxi::prost::pair_transpose(k.to_proto(), v.to_proto())
                }).collect::<std::result::Result<std::collections::HashMap<_, _>, _>>()?,
            message_id: self.message_id.to_proto()?,
            publish_time: self.publish_time.map(|v| v.to_proto()).transpose()?,
            ordering_key: self.ordering_key.to_proto()?,
        })
    }
}

impl gaxi::prost::FromProto<crate::generated::gapic_dataplane::model::PubsubMessage> for PubsubMessage {
    fn cnv(self) -> std::result::Result<crate::generated::gapic_dataplane::model::PubsubMessage, gaxi::prost::ConvertError> {
        Ok(
            crate::generated::gapic_dataplane::model::PubsubMessage::new()
                .set_data(self.data)
                .set_attributes(self.attributes.into_iter()
                    .map(|(k, v)| {
                        gaxi::prost::pair_transpose(k.cnv(), v.cnv())
                    }).collect::<std::result::Result<std::collections::HashMap<_, _>, _>>()?)
                .set_message_id(self.message_id)
                .set_or_clear_publish_time(self.publish_time.map(|v| v.cnv()).transpose()?)
                .set_ordering_key(self.ordering_key)
        )
    }
}

impl gaxi::prost::ToProto<PublishRequest> for crate::generated::gapic_dataplane::model::PublishRequest {
    type Output = PublishRequest;
    fn to_proto(self) -> std::result::Result<PublishRequest, gaxi::prost::ConvertError> {
        Ok(Self::Output {
            topic: self.topic.to_proto()?,
            messages: self.messages
                .into_iter()
                .map(|v| v.to_proto())
                .collect::<std::result::Result<std::vec::Vec<_>, _>>()?,
        })
    }
}

impl gaxi::prost::FromProto<crate::generated::gapic_dataplane::model::PublishRequest> for PublishRequest {
    fn cnv(self) -> std::result::Result<crate::generated::gapic_dataplane::model::PublishRequest, gaxi::prost::ConvertError> {
        Ok(
            crate::generated::gapic_dataplane::model::PublishRequest::new()
                .set_topic(self.topic)
                .set_messages(self.messages.into_iter().map(|v| v.cnv())
                    .collect::<std::result::Result<std::vec::Vec<_>, _>>()?)
        )
    }
}

impl gaxi::prost::ToProto<PublishResponse> for crate::generated::gapic_dataplane::model::PublishResponse {
    type Output = PublishResponse;
    fn to_proto(self) -> std::result::Result<PublishResponse, gaxi::prost::ConvertError> {
        Ok(Self::Output {
            message_ids: self.message_ids
                .into_iter()
                .map(|v| v.to_proto())
                .collect::<std::result::Result<std::vec::Vec<_>, _>>()?,
        })
    }
}

impl gaxi::prost::FromProto<crate::generated::gapic_dataplane::model::PublishResponse> for PublishResponse {
    fn cnv(self) -> std::result::Result<crate::generated::gapic_dataplane::model::PublishResponse, gaxi::prost::ConvertError> {
        Ok(
            crate::generated::gapic_dataplane::model::PublishResponse::new()
                .set_message_ids(self.message_ids.into_iter().map(|v| v.cnv())
                    .collect::<std::result::Result<std::vec::Vec<_>, _>>()?)
        )
    }
}