Type Alias DeviceKeyId

Source
pub type DeviceKeyId = KeyId<DeviceKeyAlgorithm, DeviceId>;
Expand description

Algorithm + key name for device keys.

Aliased Type§

struct DeviceKeyId(/* private fields */);

Implementations

Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> KeyId<A, K>

Source

pub fn as_str(&self) -> &str

Creates a string slice from this KeyId.

Source

pub fn as_bytes(&self) -> &[u8]

Creates a byte slice from this KeyId.

Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> KeyId<A, K>

Source

pub fn parse(s: impl AsRef<str>) -> Result<OwnedKeyId<A, K>, IdParseError>

Try parsing a &str into an OwnedKeyId.

The same can also be done using FromStr, TryFrom or TryInto. This function is simply more constrained and thus useful in generic contexts.

Source

pub fn parse_box( s: impl AsRef<str> + Into<Box<str>>, ) -> Result<Box<Self>, IdParseError>

Try parsing a &str into a Box<KeyId>.

The same can also be done using FromStr, TryFrom or TryInto. This function is simply more constrained and thus useful in generic contexts.

Source

pub fn parse_rc( s: impl AsRef<str> + Into<Rc<str>>, ) -> Result<Rc<Self>, IdParseError>

Try parsing a &str into an Rc<KeyId>.

Source

pub fn parse_arc( s: impl AsRef<str> + Into<Arc<str>>, ) -> Result<Arc<Self>, IdParseError>

Try parsing a &str into an Arc<KeyId>.

Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> KeyId<A, K>

Source

pub fn from_parts(algorithm: A, key_name: &K) -> OwnedKeyId<A, K>

Creates a new KeyId from an algorithm and key name.

Source

pub fn algorithm(&self) -> A

Returns key algorithm of the key ID - the part that comes before the colon.

§Example
use ruma_common::{DeviceKeyAlgorithm, DeviceKeyId};

let k = DeviceKeyId::parse("ed25519:1").unwrap();
assert_eq!(k.algorithm(), DeviceKeyAlgorithm::Ed25519);
Source

pub fn key_name<'a>(&'a self) -> &'a K
where &'a K: TryFrom<&'a str>,

Returns the key name of the key ID - the part that comes after the colon.

§Example
use ruma_common::{device_id, DeviceKeyId};

let k = DeviceKeyId::parse("ed25519:DEV1").unwrap();
assert_eq!(k.key_name(), device_id!("DEV1"));

Trait Implementations

Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<[u8]> for KeyId<A, K>

Source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<KeyId<A, K>> for KeyId<A, K>

Source§

fn as_ref(&self) -> &KeyId<A, K>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<str> for KeyId<A, K>

Source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Debug for KeyId<A, K>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Display for KeyId<A, K>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Hash for KeyId<A, K>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Ord for KeyId<A, K>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<&str> for KeyId<A, K>

Source§

fn eq(&self, other: &&str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<Box<KeyId<A, K>>> for KeyId<A, K>

Source§

fn eq(&self, other: &Box<KeyId<A, K>>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for KeyId<A, K>

Source§

fn eq(&self, other: &OwnedKeyId<A, K>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<String> for KeyId<A, K>

Source§

fn eq(&self, other: &String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<str> for KeyId<A, K>

Source§

fn eq(&self, other: &str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq for KeyId<A, K>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialOrd for KeyId<A, K>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Serialize for KeyId<A, K>

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> ToOwned for KeyId<A, K>

Source§

type Owned = OwnedKeyId<A, K>

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> Self::Owned

Creates owned data from borrowed data, usually by cloning. Read more
1.63.0 · Source§

fn clone_into(&self, target: &mut Self::Owned)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<A: KeyAlgorithm, K: KeyName + ?Sized> Eq for KeyId<A, K>