Struct ruma::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<Protocol, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Protocol, <__D as Deserializer<'de>>::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) -> Protocol
fn from(init: ProtocolInit) -> Protocol
Converts to this type from the input type.
source§impl Serialize for Protocol
impl Serialize for Protocol
source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
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
)