Enum ruma::CanonicalJsonValue
source · pub enum CanonicalJsonValue {
Null,
Bool(bool),
Integer(Int),
String(String),
Array(Vec<CanonicalJsonValue>),
Object(BTreeMap<String, CanonicalJsonValue>),
}
canonical-json
only.Expand description
Represents a canonical JSON value as per the Matrix specification.
Variants§
Null
Represents a JSON null value.
let v: CanonicalJsonValue = json!(null).try_into().unwrap();
Bool(bool)
Represents a JSON boolean.
let v: CanonicalJsonValue = json!(true).try_into().unwrap();
Integer(Int)
Represents a JSON integer.
let v: CanonicalJsonValue = json!(12).try_into().unwrap();
String(String)
Represents a JSON string.
let v: CanonicalJsonValue = json!("a string").try_into().unwrap();
Array(Vec<CanonicalJsonValue>)
Represents a JSON array.
let v: CanonicalJsonValue = json!(["an", "array"]).try_into().unwrap();
Object(BTreeMap<String, CanonicalJsonValue>)
Represents a JSON object.
The map is backed by a BTreeMap to guarantee the sorting of keys.
let v: CanonicalJsonValue = json!({ "an": "object" }).try_into().unwrap();
Implementations§
source§impl CanonicalJsonValue
impl CanonicalJsonValue
sourcepub fn as_bool(&self) -> Option<bool>
Available on crate feature events
only.
pub fn as_bool(&self) -> Option<bool>
events
only.If the CanonicalJsonValue
is a Bool
, return the inner value.
sourcepub fn as_integer(&self) -> Option<Int>
Available on crate feature events
only.
pub fn as_integer(&self) -> Option<Int>
events
only.If the CanonicalJsonValue
is an Integer
, return the inner value.
sourcepub fn as_str(&self) -> Option<&str>
Available on crate feature events
only.
pub fn as_str(&self) -> Option<&str>
events
only.If the CanonicalJsonValue
is a String
, return a reference to the inner value.
sourcepub fn as_array(&self) -> Option<&[CanonicalJsonValue]>
Available on crate feature events
only.
pub fn as_array(&self) -> Option<&[CanonicalJsonValue]>
events
only.If the CanonicalJsonValue
is an Array
, return a reference to the inner value.
sourcepub fn as_object(&self) -> Option<&BTreeMap<String, CanonicalJsonValue>>
Available on crate feature events
only.
pub fn as_object(&self) -> Option<&BTreeMap<String, CanonicalJsonValue>>
events
only.If the CanonicalJsonValue
is an Object
, return a reference to the inner value.
sourcepub fn as_array_mut(&mut self) -> Option<&mut Vec<CanonicalJsonValue>>
Available on crate feature events
only.
pub fn as_array_mut(&mut self) -> Option<&mut Vec<CanonicalJsonValue>>
events
only.If the CanonicalJsonValue
is an Array
, return a mutable reference to the inner value.
sourcepub fn as_object_mut(
&mut self,
) -> Option<&mut BTreeMap<String, CanonicalJsonValue>>
Available on crate feature events
only.
pub fn as_object_mut( &mut self, ) -> Option<&mut BTreeMap<String, CanonicalJsonValue>>
events
only.If the CanonicalJsonValue
is an Object
, return a mutable reference to the inner value.
sourcepub fn is_bool(&self) -> bool
Available on crate feature events
only.
pub fn is_bool(&self) -> bool
events
only.Returns true
if the CanonicalJsonValue
is a Bool
.
sourcepub fn is_integer(&self) -> bool
Available on crate feature events
only.
pub fn is_integer(&self) -> bool
events
only.Returns true
if the CanonicalJsonValue
is an Integer
.
sourcepub fn is_string(&self) -> bool
Available on crate feature events
only.
pub fn is_string(&self) -> bool
events
only.Returns true
if the CanonicalJsonValue
is a String
.
Trait Implementations§
source§impl Clone for CanonicalJsonValue
impl Clone for CanonicalJsonValue
source§fn clone(&self) -> CanonicalJsonValue
fn clone(&self) -> CanonicalJsonValue
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for CanonicalJsonValue
impl Debug for CanonicalJsonValue
source§impl Default for CanonicalJsonValue
impl Default for CanonicalJsonValue
source§fn default() -> CanonicalJsonValue
fn default() -> CanonicalJsonValue
source§impl<'de> Deserialize<'de> for CanonicalJsonValue
impl<'de> Deserialize<'de> for CanonicalJsonValue
source§fn deserialize<D>(
deserializer: D,
) -> Result<CanonicalJsonValue, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<CanonicalJsonValue, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl Display for CanonicalJsonValue
impl Display for CanonicalJsonValue
source§fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Display this value as a string.
This Display
implementation is intentionally unaffected by any formatting parameters,
because adding extra whitespace or otherwise pretty-printing it would make it not the
canonical form anymore.
If you want to pretty-print a CanonicalJsonValue
for debugging purposes, use
one of serde_json::{to_string_pretty, to_vec_pretty, to_writer_pretty}
.
source§impl From<&str> for CanonicalJsonValue
impl From<&str> for CanonicalJsonValue
source§fn from(val: &str) -> CanonicalJsonValue
fn from(val: &str) -> CanonicalJsonValue
source§impl From<BTreeMap<String, CanonicalJsonValue>> for CanonicalJsonValue
impl From<BTreeMap<String, CanonicalJsonValue>> for CanonicalJsonValue
source§fn from(val: BTreeMap<String, CanonicalJsonValue>) -> CanonicalJsonValue
fn from(val: BTreeMap<String, CanonicalJsonValue>) -> CanonicalJsonValue
source§impl From<CanonicalJsonValue> for Value
impl From<CanonicalJsonValue> for Value
source§fn from(val: CanonicalJsonValue) -> Value
fn from(val: CanonicalJsonValue) -> Value
source§impl From<Int> for CanonicalJsonValue
impl From<Int> for CanonicalJsonValue
source§fn from(val: Int) -> CanonicalJsonValue
fn from(val: Int) -> CanonicalJsonValue
source§impl From<String> for CanonicalJsonValue
impl From<String> for CanonicalJsonValue
source§fn from(val: String) -> CanonicalJsonValue
fn from(val: String) -> CanonicalJsonValue
source§impl From<UInt> for CanonicalJsonValue
impl From<UInt> for CanonicalJsonValue
source§fn from(value: UInt) -> CanonicalJsonValue
fn from(value: UInt) -> CanonicalJsonValue
source§impl From<Vec<CanonicalJsonValue>> for CanonicalJsonValue
impl From<Vec<CanonicalJsonValue>> for CanonicalJsonValue
source§fn from(val: Vec<CanonicalJsonValue>) -> CanonicalJsonValue
fn from(val: Vec<CanonicalJsonValue>) -> CanonicalJsonValue
source§impl From<bool> for CanonicalJsonValue
impl From<bool> for CanonicalJsonValue
source§fn from(val: bool) -> CanonicalJsonValue
fn from(val: bool) -> CanonicalJsonValue
source§impl PartialEq<&str> for CanonicalJsonValue
impl PartialEq<&str> for CanonicalJsonValue
source§impl PartialEq<BTreeMap<String, CanonicalJsonValue>> for CanonicalJsonValue
impl PartialEq<BTreeMap<String, CanonicalJsonValue>> for CanonicalJsonValue
source§impl PartialEq<CanonicalJsonValue> for &str
impl PartialEq<CanonicalJsonValue> for &str
source§impl PartialEq<CanonicalJsonValue> for Vec<CanonicalJsonValue>
impl PartialEq<CanonicalJsonValue> for Vec<CanonicalJsonValue>
source§impl PartialEq<Int> for CanonicalJsonValue
impl PartialEq<Int> for CanonicalJsonValue
source§impl PartialEq<String> for CanonicalJsonValue
impl PartialEq<String> for CanonicalJsonValue
source§impl PartialEq<Vec<CanonicalJsonValue>> for CanonicalJsonValue
impl PartialEq<Vec<CanonicalJsonValue>> for CanonicalJsonValue
source§impl PartialEq<bool> for CanonicalJsonValue
impl PartialEq<bool> for CanonicalJsonValue
source§impl PartialEq for CanonicalJsonValue
impl PartialEq for CanonicalJsonValue
source§impl Serialize for CanonicalJsonValue
impl Serialize for CanonicalJsonValue
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,
source§impl TryFrom<Value> for CanonicalJsonValue
impl TryFrom<Value> for CanonicalJsonValue
source§type Error = CanonicalJsonError
type Error = CanonicalJsonError
source§fn try_from(
val: Value,
) -> Result<CanonicalJsonValue, <CanonicalJsonValue as TryFrom<Value>>::Error>
fn try_from( val: Value, ) -> Result<CanonicalJsonValue, <CanonicalJsonValue as TryFrom<Value>>::Error>
impl Eq for CanonicalJsonValue
impl StructuralPartialEq for CanonicalJsonValue
Auto Trait Implementations§
impl Freeze for CanonicalJsonValue
impl RefUnwindSafe for CanonicalJsonValue
impl Send for CanonicalJsonValue
impl Sync for CanonicalJsonValue
impl Unpin for CanonicalJsonValue
impl UnwindSafe for CanonicalJsonValue
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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.source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more