Skip to content

Commit

Permalink
feat: Add Any protobuf type
Browse files Browse the repository at this point in the history
  • Loading branch information
fl0rek committed Nov 20, 2024
1 parent b24a35b commit 8c426b2
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions proto/src/protobuf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,44 @@ pub struct Duration {
#[prost(int32, tag = "2")]
pub nanos: i32,
}

/// `Any` contains an arbitrary serialized protocol buffer message along with a
/// URL that describes the type of the serialized message.
///
/// Protobuf library provides support to pack/unpack Any values in the form
/// of utility functions or additional generated methods of the Any type.
#[derive(Clone, PartialEq, ::prost::Message, ::serde::Deserialize, ::serde::Serialize)]
pub struct Any {
/// A URL/resource name that uniquely identifies the type of the serialized
/// protocol buffer message. This string must contain at least
/// one "/" character. The last segment of the URL's path must represent
/// the fully qualified name of the type (as in
/// `path/google.protobuf.Duration`). The name should be in a canonical form
/// (e.g., leading "." is not accepted).
///
/// In practice, teams usually precompile into the binary all types that they
/// expect it to use in the context of Any. However, for URLs which use the
/// scheme `http`, `https`, or no scheme, one can optionally set up a type
/// server that maps type URLs to message definitions as follows:
///
/// * If no scheme is provided, `https` is assumed.
/// * An HTTP GET on the URL must yield a \[google.protobuf.Type\]\[\]
/// value in binary format, or produce an error.
/// * Applications are allowed to cache lookup results based on the
/// URL, or have them precompiled into a binary to avoid any
/// lookup. Therefore, binary compatibility needs to be preserved
/// on changes to types. (Use versioned type names to manage
/// breaking changes.)
///
/// Note: this functionality is not currently available in the official
/// protobuf release, and it is not used for type URLs beginning with
/// type.googleapis.com.
///
/// Schemes other than `http`, `https` (or the empty scheme) might be
/// used with implementation specific semantics.
#[prost(string, tag = "1")]
pub type_url: crate::String,
/// Must be a valid serialized protocol buffer of the above specified type.
#[prost(bytes = "bytes", tag = "2")]
pub value: crate::Vec<u8>,
}

0 comments on commit 8c426b2

Please sign in to comment.