pub struct OwnedKeyId<A: KeyAlgorithm, K: KeyName + ?Sized> { /* private fields */ }Expand description
Owned variant of KeyId
§Inner representation
By default, this type uses a Box<str> internally. The inner representation can be selected at
compile time by using one of the following supported values:
Arc– Use anArc<str>.
The selected value can be set by using the ruma_identifiers_storage compile-time cfg setting.
This setting can be configured using the RUSTFLAGS environment variable at build time, like this:
RUSTFLAGS="--cfg ruma_identifiers_storage=\"{value}\""Or in .cargo/config.toml:
# General setting for all targets, overridden by per-target `rustflags` setting if set.
[build]
rustflags = ["--cfg", "ruma_identifiers_storage=\"{value}\""]
# Per-target setting.
[target.<triple/cfg>]
rustflags = ["--cfg", "ruma_identifiers_storage=\"{value}\""]This setting can also be configured using the RUMA_IDENTIFIERS_STORAGE environment variable at
compile time, which has the benefit of not requiring to re-compile the whole dependency chain
when the value is changed, like this:
RUMA_IDENTIFIERS_STORAGE="{value}"Implementations§
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> OwnedKeyId<A, K>
Sourcepub fn zeroize(self)
pub fn zeroize(self)
Securely zero memory (aka zeroize) of OwnedKeyId.
This method zeroizes this type by writing zeros in its
memory location before freeing it. It internally uses
the zeroize crate. Note that this type
doesn’t implement the zeroize::Zeroize trait because the
Zeroize::zeroize method takes a &mut self, which means
we could put this type into an inconsistent state if it is
used after calling that method. Instead, this method takes
ownership of the type, ensuring it’s impossible to misuse
it.
§Implementation details
If the ruma_identifiers_storage configuration is
set to Arc, this type will be zeroized if and only if
Arc::get_mut returns Some reference, i.e. if there is no
other Arc or Weak pointers to this same location.
Methods from Deref<Target = KeyId<A, K>>§
Trait Implementations§
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<KeyId<A, K>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<KeyId<A, K>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<[u8]> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<[u8]> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<str> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> AsRef<str> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Borrow<KeyId<A, K>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Borrow<KeyId<A, K>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Borrow<str> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Borrow<str> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Clone for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Clone for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Debug for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Debug for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Deref for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Deref for OwnedKeyId<A, K>
Source§impl<'de, A: KeyAlgorithm, K: KeyName + ?Sized> Deserialize<'de> for OwnedKeyId<A, K>
impl<'de, A: KeyAlgorithm, K: KeyName + ?Sized> Deserialize<'de> for OwnedKeyId<A, K>
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>,
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Display for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Display for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Eq for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<&KeyId<A, K>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<&KeyId<A, K>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<OwnedKeyId<A, K>> for Box<str>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<OwnedKeyId<A, K>> for Box<str>
Source§fn from(id: OwnedKeyId<A, K>) -> Self
fn from(id: OwnedKeyId<A, K>) -> Self
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<OwnedKeyId<A, K>> for String
impl<A: KeyAlgorithm, K: KeyName + ?Sized> From<OwnedKeyId<A, K>> for String
Source§fn from(id: OwnedKeyId<A, K>) -> Self
fn from(id: OwnedKeyId<A, K>) -> Self
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> FromStr for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> FromStr for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Hash for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Hash for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Ord for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Ord for OwnedKeyId<A, K>
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<&KeyId<A, K>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<&KeyId<A, K>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<&str> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<&str> for OwnedKeyId<A, K>
Source§impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<Cow<'a, str>> for OwnedKeyId<A, K>
impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<Cow<'a, str>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<KeyId<A, K>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<KeyId<A, K>> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for str
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for str
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for &str
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for &str
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for String
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for String
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for Cow<'a, str>
impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for Cow<'a, str>
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for KeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for KeyId<A, K>
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for &KeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<OwnedKeyId<A, K>> for &KeyId<A, K>
Source§fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
fn eq(&self, other: &OwnedKeyId<A, K>) -> bool
self and other values to be equal, and is used by ==.Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<String> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<String> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<str> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialEq<str> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialOrd for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> PartialOrd for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> Serialize for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> Serialize for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<&str> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<&str> for OwnedKeyId<A, K>
Source§impl<A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<Box<str>> for OwnedKeyId<A, K>
impl<A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<Box<str>> for OwnedKeyId<A, K>
Source§impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<Cow<'a, str>> for OwnedKeyId<A, K>
impl<'a, A: KeyAlgorithm, K: KeyName + ?Sized> TryFrom<Cow<'a, str>> for OwnedKeyId<A, K>
Auto Trait Implementations§
impl<A, K> Freeze for OwnedKeyId<A, K>where
K: ?Sized,
impl<A, K> RefUnwindSafe for OwnedKeyId<A, K>
impl<A, K> Send for OwnedKeyId<A, K>
impl<A, K> Sync for OwnedKeyId<A, K>
impl<A, K> Unpin for OwnedKeyId<A, K>
impl<A, K> UnsafeUnpin for OwnedKeyId<A, K>where
K: ?Sized,
impl<A, K> UnwindSafe for OwnedKeyId<A, K>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.