Struct bson::raw::RawArrayBuf
source · [−]pub struct RawArrayBuf { /* private fields */ }
Expand description
An owned BSON array value (akin to std::path::PathBuf
), backed by a buffer of raw BSON
bytes. This type can be used to construct owned array values, which can be used to append to
RawDocumentBuf
or as a field in a Deserialize
struct.
Iterating over a RawArrayBuf
yields either an error or a RawBson
value that borrows from
the original document without making any additional allocations.
use bson::raw::RawArrayBuf;
let mut array = RawArrayBuf::new();
array.push("a string");
array.push(12_i32);
let mut iter = array.into_iter();
let value = iter.next().unwrap()?;
assert_eq!(value.as_str(), Some("a string"));
let value = iter.next().unwrap()?;
assert_eq!(value.as_i32(), Some(12));
assert!(iter.next().is_none());
This type implements Deref
to RawArray
, meaning that all methods on RawArray
are
available on RawArrayBuf
values as well. This includes 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 document from
the beginning to find the requested key.
Implementations
sourceimpl RawArrayBuf
impl RawArrayBuf
sourcepub fn new() -> RawArrayBuf
pub fn new() -> RawArrayBuf
Construct a new, empty RawArrayBuf
.
sourcepub fn push(&mut self, value: impl Into<RawBson>)
pub fn push(&mut self, value: impl Into<RawBson>)
Append a value to the end of the array.
use bson::raw::{RawArrayBuf, RawDocumentBuf};
let mut array = RawArrayBuf::new();
array.push("a string");
array.push(12_i32);
let mut doc = RawDocumentBuf::new();
doc.append("a key", "a value");
array.push(doc.clone());
let mut iter = array.into_iter();
let value = iter.next().unwrap()?;
assert_eq!(value.as_str(), Some("a string"));
let value = iter.next().unwrap()?;
assert_eq!(value.as_i32(), Some(12));
let value = iter.next().unwrap()?;
assert_eq!(value.as_document(), Some(doc.as_ref()));
assert!(iter.next().is_none());
Methods from Deref<Target = RawArray>
sourcepub fn to_raw_array_buf(&self) -> RawArrayBuf
pub fn to_raw_array_buf(&self) -> RawArrayBuf
Convert this borrowed RawArray
into an owned RawArrayBuf
.
This involves a traversal of the array to count the values.
sourcepub fn get(&self, index: usize) -> Result<Option<RawBsonRef<'_>>>
pub fn get(&self, index: usize) -> Result<Option<RawBsonRef<'_>>>
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<RawBinaryRef<'_>>
pub fn get_binary(&self, index: usize) -> ValueAccessResult<RawBinaryRef<'_>>
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_object_id(&self, index: usize) -> ValueAccessResult<ObjectId>
pub fn get_object_id(&self, index: usize) -> ValueAccessResult<ObjectId>
Gets the ObjectId at the given index or returns an error if the value at that index isn’t an ObjectId.
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_regex(&self, index: usize) -> ValueAccessResult<RawRegexRef<'_>>
pub fn get_regex(&self, index: usize) -> ValueAccessResult<RawRegexRef<'_>>
Gets a reference to the BSON regex at the given index or returns an error if the value at that index isn’t a regex.
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.
Trait Implementations
sourceimpl AsRef<RawArray> for RawArrayBuf
impl AsRef<RawArray> for RawArrayBuf
sourceimpl Borrow<RawArray> for RawArrayBuf
impl Borrow<RawArray> for RawArrayBuf
sourceimpl Clone for RawArrayBuf
impl Clone for RawArrayBuf
sourcefn clone(&self) -> RawArrayBuf
fn clone(&self) -> RawArrayBuf
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for RawArrayBuf
impl Debug for RawArrayBuf
sourceimpl Default for RawArrayBuf
impl Default for RawArrayBuf
sourceimpl Deref for RawArrayBuf
impl Deref for RawArrayBuf
sourceimpl<'de> Deserialize<'de> for RawArrayBuf
impl<'de> Deserialize<'de> for RawArrayBuf
sourcefn 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>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<'a> From<&'a RawArrayBuf> for Cow<'a, RawArray>
impl<'a> From<&'a RawArrayBuf> for Cow<'a, RawArray>
sourcefn from(rd: &'a RawArrayBuf) -> Self
fn from(rd: &'a RawArrayBuf) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a RawArrayBuf> for RawBsonRef<'a>
impl<'a> From<&'a RawArrayBuf> for RawBsonRef<'a>
sourcefn from(a: &'a RawArrayBuf) -> Self
fn from(a: &'a RawArrayBuf) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<RawArrayBuf> for Cow<'a, RawArray>
impl<'a> From<RawArrayBuf> for Cow<'a, RawArray>
sourcefn from(rd: RawArrayBuf) -> Self
fn from(rd: RawArrayBuf) -> Self
Converts to this type from the input type.
sourceimpl From<RawArrayBuf> for RawBson
impl From<RawArrayBuf> for RawBson
sourcefn from(a: RawArrayBuf) -> Self
fn from(a: RawArrayBuf) -> Self
Converts to this type from the input type.
sourceimpl<T: Into<RawBson>> FromIterator<T> for RawArrayBuf
impl<T: Into<RawBson>> FromIterator<T> for RawArrayBuf
sourcefn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
Creates a value from an iterator. Read more
sourceimpl<'a> IntoIterator for &'a RawArrayBuf
impl<'a> IntoIterator for &'a RawArrayBuf
type IntoIter = RawArrayIter<'a>
type IntoIter = RawArrayIter<'a>
Which kind of iterator are we turning this into?
type Item = Result<RawBsonRef<'a>>
type Item = Result<RawBsonRef<'a>>
The type of the elements being iterated over.
sourcefn into_iter(self) -> RawArrayIter<'a>ⓘNotable traits for RawArrayIter<'a>impl<'a> Iterator for RawArrayIter<'a> type Item = Result<RawBsonRef<'a>>;
fn into_iter(self) -> RawArrayIter<'a>ⓘNotable traits for RawArrayIter<'a>impl<'a> Iterator for RawArrayIter<'a> type Item = Result<RawBsonRef<'a>>;
Creates an iterator from a value. Read more
sourceimpl PartialEq<RawArrayBuf> for RawArrayBuf
impl PartialEq<RawArrayBuf> for RawArrayBuf
sourcefn eq(&self, other: &RawArrayBuf) -> bool
fn eq(&self, other: &RawArrayBuf) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &RawArrayBuf) -> bool
fn ne(&self, other: &RawArrayBuf) -> bool
This method tests for !=
.
sourceimpl Serialize for RawArrayBuf
impl Serialize for RawArrayBuf
impl StructuralPartialEq for RawArrayBuf
Auto Trait Implementations
impl RefUnwindSafe for RawArrayBuf
impl Send for RawArrayBuf
impl Sync for RawArrayBuf
impl Unpin for RawArrayBuf
impl UnwindSafe for RawArrayBuf
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more