Struct ruma_common::thirdparty::Protocol
source · #[non_exhaustive]pub struct Protocol {
pub user_fields: Vec<String>,
pub location_fields: Vec<String>,
pub icon: String,
pub field_types: BTreeMap<String, FieldType>,
pub instances: Vec<ProtocolInstance>,
}
Expand description
Metadata about a third party protocol.
To create an instance of this type, first create a ProtocolInit
and convert it via
Protocol::from
/ .into()
.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.user_fields: Vec<String>
Fields which may be used to identify a third party user.
location_fields: Vec<String>
Fields which may be used to identify a third party location.
icon: String
A content URI representing an icon for the third party protocol.
If the compat-optional
feature is enabled, this field being absent in JSON will result
in an empty string instead of an error when deserializing.
field_types: BTreeMap<String, FieldType>
The type definitions for the fields defined in user_fields
and location_fields
.
instances: Vec<ProtocolInstance>
A list of objects representing independent instances of configuration.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Protocol
impl<'de> Deserialize<'de> for Protocol
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl From<ProtocolInit> for Protocol
impl From<ProtocolInit> for Protocol
source§fn from(init: ProtocolInit) -> Self
fn from(init: ProtocolInit) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Protocol
impl RefUnwindSafe for Protocol
impl Send for Protocol
impl Sync for Protocol
impl Unpin for Protocol
impl UnwindSafe for Protocol
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)