pub struct RawArray { /* private fields */ }Expand description
A slice of a BSON document containing a BSON array value (akin to std::str). This can be
retrieved from a RawDocument via RawDocument::get.
This is an unsized type, meaning that it must always be used behind a pointer like &.
Accessing elements within a RawArray is similar to element access in crate::Document,
but because the contents are parsed during iteration instead of at creation time, format errors
can happen at any time during use.
Iterating over a RawArray yields either an error or a value that borrows from the
original document without making any additional allocations.
use bson::{doc, raw::RawDocument};
let doc = doc! {
"x": [1, true, "two", 5.5]
};
let bytes = bson::to_vec(&doc)?;
let rawdoc = RawDocument::new(bytes.as_slice())?;
let rawarray = rawdoc.get_array("x")?;
for v in rawarray {
println!("{:?}", v?);
}Individual elements can be accessed using RawArray::get or any of
the type-specific getters, such as [RawArray::get_object_id] or
RawArray::get_str. Note that accessing elements is an O(N) operation, as it
requires iterating through the array from the beginning to find the requested index.
use bson::{doc, raw::RawDocument};
let doc = doc! {
"x": [1, true, "two", 5.5]
};
let bytes = bson::to_vec(&doc)?;
let rawdoc = RawDocument::new(bytes.as_slice())?;
let rawarray = rawdoc.get_array("x")?;
assert_eq!(rawarray.get_bool(1)?, true);Implementations§
Source§impl RawArray
impl RawArray
Sourcepub fn get(&self, index: usize) -> Result<Option<RawBson<'_>>>
pub fn get(&self, index: usize) -> Result<Option<RawBson<'_>>>
Gets a reference to the value at the given index.
Sourcepub fn get_f64(&self, index: usize) -> ValueAccessResult<f64>
pub fn get_f64(&self, index: usize) -> ValueAccessResult<f64>
Gets the BSON double at the given index or returns an error if the value at that index isn’t a double.
Sourcepub fn get_str(&self, index: usize) -> ValueAccessResult<&str>
pub fn get_str(&self, index: usize) -> ValueAccessResult<&str>
Gets a reference to the string at the given index or returns an error if the value at that index isn’t a string.
Sourcepub fn get_document(&self, index: usize) -> ValueAccessResult<&RawDocument>
pub fn get_document(&self, index: usize) -> ValueAccessResult<&RawDocument>
Gets a reference to the document at the given index or returns an error if the value at that index isn’t a document.
Sourcepub fn get_array(&self, index: usize) -> ValueAccessResult<&RawArray>
pub fn get_array(&self, index: usize) -> ValueAccessResult<&RawArray>
Gets a reference to the array at the given index or returns an error if the value at that index isn’t a array.
Sourcepub fn get_binary(&self, index: usize) -> ValueAccessResult<RawBinary<'_>>
pub fn get_binary(&self, index: usize) -> ValueAccessResult<RawBinary<'_>>
Gets a reference to the BSON binary value at the given index or returns an error if the value at that index isn’t a binary.
Sourcepub fn get_bool(&self, index: usize) -> ValueAccessResult<bool>
pub fn get_bool(&self, index: usize) -> ValueAccessResult<bool>
Gets the boolean at the given index or returns an error if the value at that index isn’t a boolean.
Sourcepub fn get_datetime(&self, index: usize) -> ValueAccessResult<DateTime>
pub fn get_datetime(&self, index: usize) -> ValueAccessResult<DateTime>
Gets the DateTime at the given index or returns an error if the value at that index isn’t a DateTime.
Sourcepub fn get_timestamp(&self, index: usize) -> ValueAccessResult<Timestamp>
pub fn get_timestamp(&self, index: usize) -> ValueAccessResult<Timestamp>
Gets a reference to the BSON timestamp at the given index or returns an error if the value at that index isn’t a timestamp.
Sourcepub fn get_i32(&self, index: usize) -> ValueAccessResult<i32>
pub fn get_i32(&self, index: usize) -> ValueAccessResult<i32>
Gets the BSON int32 at the given index or returns an error if the value at that index isn’t a 32-bit integer.
Sourcepub fn get_i64(&self, index: usize) -> ValueAccessResult<i64>
pub fn get_i64(&self, index: usize) -> ValueAccessResult<i64>
Gets BSON int64 at the given index or returns an error if the value at that index isn’t a 64-bit integer.