Struct prost_types::Mixin [−][src]
Declares an API Interface to be included in this interface. The including interface must redeclare all the methods from the included interface, but documentation and options are inherited as follows:
-
If after comment and whitespace stripping, the documentation string of the redeclared method is empty, it will be inherited from the original method.
-
Each annotation belonging to the service config (http, visibility) which is not set in the redeclared method will be inherited.
-
If an http annotation is inherited, the path pattern will be modified as follows. Any version prefix will be replaced by the version of the including interface plus the [root][] path if specified.
Example of a simple mixin:
package google.acl.v1; service AccessControl { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package google.storage.v2; service Storage { rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc GetData(GetDataRequest) returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; } }
Example of a mixin configuration:
apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl
The mixin construct implies that all methods in AccessControl are
also declared with same name and request/response types in
Storage. A documentation generator or annotation processor will
see the effective Storage.GetAcl method after inherting
documentation and annotations as follows:
service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... }
Note how the version in the path pattern changed from v1 to v2.
If the root field in the mixin is specified, it should be a
relative path under which inherited HTTP paths are placed. Example:
apis: - name: google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl root: acls
This implies the following inherited HTTP annotation:
service Storage { // Get the underlying ACL object. rpc GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; } ... }
Fields
name: String
The fully qualified name of the interface which is included.
root: String
If non-empty specifies a path under which inherited HTTP paths are rooted.
Trait Implementations
impl Message for Mixin[src]
impl Message for Mixinfn encode_raw<B>(&self, buf: &mut B) where
B: BufMut, [src]
fn encode_raw<B>(&self, buf: &mut B) where
B: BufMut, fn merge_field<B>(&mut self, buf: &mut B) -> Result<(), DecodeError> where
B: Buf, [src]
fn merge_field<B>(&mut self, buf: &mut B) -> Result<(), DecodeError> where
B: Buf, fn encoded_len(&self) -> usize[src]
fn encoded_len(&self) -> usizeReturns the encoded length of the message without a length delimiter.
fn clear(&mut self)[src]
fn clear(&mut self)Clears the message, resetting all fields to their default.
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut, [src]
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut, Encodes the message to a buffer. Read more
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut, [src]
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut, Encodes the message with a length-delimiter to a buffer. Read more
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: IntoBuf,
Self: Default, [src]
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: IntoBuf,
Self: Default, Decodes an instance of the message from a buffer. Read more
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: IntoBuf,
Self: Default, [src]
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: IntoBuf,
Self: Default, Decodes a length-delimited instance of the message from the buffer.
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: IntoBuf, [src]
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: IntoBuf, Decodes an instance of the message from a buffer, and merges it into self. Read more
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: IntoBuf, [src]
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: IntoBuf, Decodes a length-delimited instance of the message from buffer, and merges it into self. Read more
impl Default for Mixin[src]
impl Default for Mixinimpl Debug for Mixin[src]
impl Debug for Mixinfn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Clone for Mixin[src]
impl Clone for Mixinfn clone(&self) -> Mixin[src]
fn clone(&self) -> MixinReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl PartialEq for Mixin[src]
impl PartialEq for Mixin