Collection

Struct Collection 

Source
pub struct Collection<T>
where T: Serialize + DeserializeOwned + 'static,
{ /* private fields */ }
Expand description

Represents a collection of documents in a Firestore database.

Documents in Firestore do not have types, but on the Rust end, we associate each collection with a type. Documents are serialized into and deserialized from this type when writing/reading to Firestore.

Implementations§

Source§

impl<T> Collection<T>

Source

pub fn new(db: SharedFirestoreClient, name: CollectionName) -> Self

Construct a top-level collection (i.e. a collection whose parent is the root.)

Source

pub fn list(&self) -> ListResponse<T>

Returns a stream of all of the documents in a collection (as [NamedDocument]s).

Source

pub fn name(&self) -> CollectionName

Source

pub fn subcollection<S>(&self, name: &str, collection: &str) -> Collection<S>

Source

pub async fn create_with_key( &self, ob: &T, key: impl QualifyDocumentName, ) -> Result<()>

Create the given document in this collection with the given key. Returns an error if the key is already in use (if you intend to replace the document in that case, use upsert instead.)

Source

pub async fn try_create( &self, ob: &T, key: impl QualifyDocumentName, ) -> Result<bool>

Create the given document in this collection with the given key. Returns true if the document was created, or false if it already existed.

Source

pub async fn create(&self, ob: &T) -> Result<DocumentName>

Add the given document to this collection, assigning it a new key at random.

Source

pub async fn upsert(&self, ob: &T, key: impl QualifyDocumentName) -> Result<()>

Overwrite the given document to this collection, creating a new document if one does not exist.

Source

pub async fn update(&self, ob: &T, key: impl QualifyDocumentName) -> Result<()>

Update the given document, returning an error if it does not exist.

Source

pub async fn get(&self, key: impl QualifyDocumentName) -> Result<T>

Get the document with a given key.

Source

pub async fn delete(&self, key: impl QualifyDocumentName) -> Result<()>

Delete the document with a given key.

Auto Trait Implementations§

§

impl<T> Freeze for Collection<T>

§

impl<T> !RefUnwindSafe for Collection<T>

§

impl<T> Send for Collection<T>
where T: Send,

§

impl<T> Sync for Collection<T>
where T: Sync,

§

impl<T> Unpin for Collection<T>
where T: Unpin,

§

impl<T> !UnwindSafe for Collection<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more