pub enum Bson {
Show 21 variants
Double(f64),
String(String),
Array(Array),
Document(Document),
Boolean(bool),
Null,
RegularExpression(Regex),
JavaScriptCode(String),
JavaScriptCodeWithScope(JavaScriptCodeWithScope),
Int32(i32),
Int64(i64),
Timestamp(Timestamp),
Binary(Binary),
ObjectId(ObjectId),
DateTime(DateTime),
Symbol(String),
Decimal128(Decimal128),
Undefined,
MaxKey,
MinKey,
DbPointer(DbPointer),
}
Expand description
Possible BSON value types.
Variants§
Double(f64)
64-bit binary floating point
String(String)
UTF-8 string
Array(Array)
Array
Document(Document)
Embedded document
Boolean(bool)
Boolean value
Null
Null value
RegularExpression(Regex)
Regular expression
JavaScriptCode(String)
JavaScript code
JavaScriptCodeWithScope(JavaScriptCodeWithScope)
JavaScript code w/ scope
Int32(i32)
32-bit signed integer
Int64(i64)
64-bit signed integer
Timestamp(Timestamp)
Timestamp
Binary(Binary)
Binary data
ObjectId(ObjectId)
DateTime(DateTime)
UTC datetime
Symbol(String)
Symbol (Deprecated)
Decimal128(Decimal128)
Undefined
Undefined value (Deprecated)
MaxKey
Max key
MinKey
Min key
DbPointer(DbPointer)
DBPointer (Deprecated)
Implementations§
source§impl Bson
impl Bson
sourcepub fn into_relaxed_extjson(self) -> Value
pub fn into_relaxed_extjson(self) -> Value
Converts the Bson value into its relaxed extended JSON representation.
Note: If this method is called on a case which contains a Decimal128
value, it will panic.
sourcepub fn into_canonical_extjson(self) -> Value
pub fn into_canonical_extjson(self) -> Value
Converts the Bson value into its canonical extended JSON representation.
sourcepub fn element_type(&self) -> ElementType
pub fn element_type(&self) -> ElementType
Get the ElementType
of this value.
source§impl Bson
impl Bson
Value helpers
sourcepub fn as_str_mut(&mut self) -> Option<&mut str>
pub fn as_str_mut(&mut self) -> Option<&mut str>
sourcepub fn as_array_mut(&mut self) -> Option<&mut Array>
pub fn as_array_mut(&mut self) -> Option<&mut Array>
sourcepub fn as_document(&self) -> Option<&Document>
pub fn as_document(&self) -> Option<&Document>
sourcepub fn as_document_mut(&mut self) -> Option<&mut Document>
pub fn as_document_mut(&mut self) -> Option<&mut Document>
sourcepub fn as_object_id(&self) -> Option<ObjectId>
pub fn as_object_id(&self) -> Option<ObjectId>
sourcepub fn as_object_id_mut(&mut self) -> Option<&mut ObjectId>
pub fn as_object_id_mut(&mut self) -> Option<&mut ObjectId>
sourcepub fn as_datetime(&self) -> Option<&DateTime>
pub fn as_datetime(&self) -> Option<&DateTime>
sourcepub fn as_datetime_mut(&mut self) -> Option<&mut DateTime>
pub fn as_datetime_mut(&mut self) -> Option<&mut DateTime>
sourcepub fn as_symbol_mut(&mut self) -> Option<&mut str>
pub fn as_symbol_mut(&mut self) -> Option<&mut str>
sourcepub fn as_timestamp(&self) -> Option<Timestamp>
pub fn as_timestamp(&self) -> Option<Timestamp>
Trait Implementations§
source§impl<'de> Deserialize<'de> for Bson
impl<'de> Deserialize<'de> for Bson
source§fn deserialize<D>(deserializer: D) -> Result<Bson, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Bson, D::Error>where
D: Deserializer<'de>,
source§impl From<Bson> for Value
impl From<Bson> for Value
This will create the relaxed Extended JSON v2 representation of the provided Bson
.
source§impl From<Decimal128> for Bson
impl From<Decimal128> for Bson
source§fn from(d: Decimal128) -> Self
fn from(d: Decimal128) -> Self
source§impl From<JavaScriptCodeWithScope> for Bson
impl From<JavaScriptCodeWithScope> for Bson
source§fn from(code_with_scope: JavaScriptCodeWithScope) -> Bson
fn from(code_with_scope: JavaScriptCodeWithScope) -> Bson
source§impl From<OffsetDateTime> for Bson
Available on crate feature time-0_3
only.
impl From<OffsetDateTime> for Bson
time-0_3
only.source§fn from(a: OffsetDateTime) -> Bson
fn from(a: OffsetDateTime) -> Bson
source§impl<T: Into<Bson>> FromIterator<T> for Bson
impl<T: Into<Bson>> FromIterator<T> for Bson
source§fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
§Examples
use std::iter::FromIterator;
use bson::Bson;
let x: Bson = Bson::from_iter(vec!["lorem", "ipsum", "dolor"]);
// or
let x: Bson = vec!["lorem", "ipsum", "dolor"].into_iter().collect();
source§impl TryFrom<Map<String, Value>> for Bson
impl TryFrom<Map<String, Value>> for Bson
This converts from the input JSON object as if it were MongoDB Extended JSON v2.
source§impl<'a> TryFrom<RawBsonRef<'a>> for Bson
impl<'a> TryFrom<RawBsonRef<'a>> for Bson
source§impl TryFrom<Value> for Bson
impl TryFrom<Value> for Bson
This converts from the input JSON as if it were MongoDB Extended JSON v2.
source§impl<'a> TryInto<Bson> for RawElement<'a>
impl<'a> TryInto<Bson> for RawElement<'a>
impl Eq for Bson
impl StructuralPartialEq for Bson
Auto Trait Implementations§
impl Freeze for Bson
impl RefUnwindSafe for Bson
impl Send for Bson
impl Sync for Bson
impl Unpin for Bson
impl UnwindSafe for Bson
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> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.