pub struct DocumentName { /* private fields */ }
Expand description
A document name.
§Format
{database_name}/{document_path}
§Examples
use firestore_path::DocumentName;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.to_string(),
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
);
assert_eq!(
document_name.clone().collection("messages")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(document_name.collection_id(), &CollectionId::from_str("chatrooms")?);
assert_eq!(
document_name.database_name(),
&DatabaseName::from_str("projects/my-project/databases/my-database")?
);
assert_eq!(document_name.document_id(), &DocumentId::from_str("chatroom1")?);
assert_eq!(document_name.document_path(), &DocumentPath::from_str("chatrooms/chatroom1")?);
assert_eq!(
document_name.clone().parent(),
CollectionName::from_str("projects/my-project/databases/my-database/documents/chatrooms")?
);
assert_eq!(
DocumentPath::from(document_name.clone()),
DocumentPath::from_str("chatrooms/chatroom1")?
);
Implementations§
Source§impl DocumentName
impl DocumentName
Sourcepub fn new<D>(root_document_name: D, document_path: DocumentPath) -> Selfwhere
D: Into<RootDocumentName>,
pub fn new<D>(root_document_name: D, document_path: DocumentPath) -> Selfwhere
D: Into<RootDocumentName>,
Creates a new DocumentName
.
§Examples
use firestore_path::{DatabaseName,DocumentName,DocumentPath,RootDocumentName};
use std::str::FromStr;
let root_document_name = RootDocumentName::from_str("projects/my-project/databases/my-database/documents")?;
let document_path = DocumentPath::from_str("chatrooms/chatroom1")?;
let document_name = DocumentName::new(root_document_name, document_path);
assert_eq!(
document_name.to_string(),
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
);
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
let document_path = DocumentPath::from_str("chatrooms/chatroom1")?;
let document_name = DocumentName::new(database_name, document_path);
assert_eq!(
document_name.to_string(),
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
);
Sourcepub fn collection<E, T>(
&self,
collection_path: T,
) -> Result<CollectionName, Error>
pub fn collection<E, T>( &self, collection_path: T, ) -> Result<CollectionName, Error>
Creates a new CollectionName
from this DocumentName
and collection_path
.
§Examples
use firestore_path::{CollectionId,CollectionName,CollectionPath,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.collection("messages")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
document_name.collection("messages/message1/col")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col"
)?
);
assert_eq!(
document_name.collection(CollectionId::from_str("messages")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
document_name.collection(CollectionPath::from_str("messages/message1/col")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col"
)?
);
Sourcepub fn collection_id(&self) -> &CollectionId
pub fn collection_id(&self) -> &CollectionId
Returns the CollectionId
of this DocumentName
.
§Examples
use firestore_path::{CollectionId,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.collection_id(),
&CollectionId::from_str("chatrooms")?
);
Sourcepub fn database_name(&self) -> &DatabaseName
pub fn database_name(&self) -> &DatabaseName
Returns the DatabaseName
of this DocumentName
.
§Examples
use firestore_path::{DatabaseName,DocumentName,DocumentPath};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.database_name(),
&DatabaseName::from_str("projects/my-project/databases/my-database")?
);
Sourcepub fn doc<E, T>(&self, document_path: T) -> Result<DocumentName, Error>
pub fn doc<E, T>(&self, document_path: T) -> Result<DocumentName, Error>
Creates a new DocumentName
from this DocumentName
and document_path
.
§Examples
use firestore_path::{CollectionPath,DocumentName,DocumentPath};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.doc("messages/message1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
document_name.doc("messages/message1/col/doc")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col/doc"
)?
);
assert_eq!(
document_name.doc(DocumentPath::from_str("messages/message1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
document_name.doc(DocumentPath::from_str("messages/message1/col/doc")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col/doc"
)?
);
Sourcepub fn document_id(&self) -> &DocumentId
pub fn document_id(&self) -> &DocumentId
Returns the DocumentId
of this DocumentName
.
§Examples
use firestore_path::{DocumentId,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(document_name.document_id(), &DocumentId::from_str("chatroom1")?);
Sourcepub fn document_path(&self) -> &DocumentPath
pub fn document_path(&self) -> &DocumentPath
Returns the DocumentPath
of this DocumentName
.
§Examples
use firestore_path::{DocumentName,DocumentPath};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.document_path(),
&DocumentPath::from_str("chatrooms/chatroom1")?
);
Sourcepub fn into_collection<E, T>(
self,
collection_path: T,
) -> Result<CollectionName, Error>
pub fn into_collection<E, T>( self, collection_path: T, ) -> Result<CollectionName, Error>
Creates a new CollectionName
from this DocumentName
and collection_path
.
§Examples
use firestore_path::{CollectionId,CollectionName,CollectionPath,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.clone().into_collection("messages")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
document_name.clone().into_collection("messages/message1/col")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col"
)?
);
assert_eq!(
document_name.clone().into_collection(CollectionId::from_str("messages")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
document_name.into_collection(CollectionPath::from_str("messages/message1/col")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col"
)?
);
Sourcepub fn into_doc<E, T>(self, document_path: T) -> Result<DocumentName, Error>
pub fn into_doc<E, T>(self, document_path: T) -> Result<DocumentName, Error>
Creates a new DocumentName
by consuming the DocumentName
with the provided document_path
.
§Examples
use firestore_path::{CollectionPath,DocumentName,DocumentPath};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.clone().into_doc("messages/message1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
document_name.clone().into_doc("messages/message1/col/doc")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col/doc"
)?
);
assert_eq!(
document_name.clone().into_doc(DocumentPath::from_str("messages/message1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
document_name.into_doc(DocumentPath::from_str("messages/message1/col/doc")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1/col/doc"
)?
);
Sourcepub fn into_parent(self) -> CollectionName
pub fn into_parent(self) -> CollectionName
Consumes the DocumentName
, returning the parent CollectionName
.
§Examples
use firestore_path::{CollectionName,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.into_parent(),
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
Sourcepub fn into_parent_document_name(self) -> Option<DocumentName>
pub fn into_parent_document_name(self) -> Option<DocumentName>
Consumes the DocumentName
, returning the parent DocumentName
.
§Examples
use firestore_path::{CollectionName,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(document_name.into_parent_document_name(), None);
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?;
assert_eq!(
document_name.into_parent_document_name(),
Some(DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?)
);
Sourcepub fn into_root_document_name(self) -> RootDocumentName
pub fn into_root_document_name(self) -> RootDocumentName
Consumes the DocumentName
, returning the RootDocumentName
.
§Examples
use firestore_path::{DocumentName,RootDocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
let root_document_name = document_name.into_root_document_name();
assert_eq!(
root_document_name,
RootDocumentName::from_str(
"projects/my-project/databases/my-database/documents"
)?
);
Sourcepub fn parent(&self) -> CollectionName
pub fn parent(&self) -> CollectionName
Returns the parent CollectionName
of this DocumentName
.
§Examples
use firestore_path::{CollectionName,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(
document_name.parent(),
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
assert_eq!(
document_name.parent(),
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
Sourcepub fn parent_document_name(&self) -> Option<DocumentName>
pub fn parent_document_name(&self) -> Option<DocumentName>
Returns the parent DocumentName
of this DocumentName
.
§Examples
use firestore_path::{CollectionName,DocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
assert_eq!(document_name.parent_document_name(), None);
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?;
assert_eq!(
document_name.parent_document_name(),
Some(DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?)
);
Sourcepub fn root_document_name(&self) -> &RootDocumentName
pub fn root_document_name(&self) -> &RootDocumentName
Returns the RootDocumentName
of this DocumentName
.
§Examples
use firestore_path::{DocumentName,RootDocumentName};
use std::str::FromStr;
let document_name = DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?;
let root_document_name = document_name.root_document_name();
assert_eq!(
root_document_name,
&RootDocumentName::from_str(
"projects/my-project/databases/my-database/documents"
)?
);
Trait Implementations§
Source§impl Clone for DocumentName
impl Clone for DocumentName
Source§fn clone(&self) -> DocumentName
fn clone(&self) -> DocumentName
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for DocumentName
impl Debug for DocumentName
Source§impl Display for DocumentName
impl Display for DocumentName
Source§impl From<DocumentName> for DatabaseName
impl From<DocumentName> for DatabaseName
Source§fn from(document_name: DocumentName) -> Self
fn from(document_name: DocumentName) -> Self
Source§impl From<DocumentName> for DocumentId
impl From<DocumentName> for DocumentId
Source§fn from(document_name: DocumentName) -> Self
fn from(document_name: DocumentName) -> Self
Source§impl From<DocumentName> for DocumentPath
impl From<DocumentName> for DocumentPath
Source§fn from(document_name: DocumentName) -> Self
fn from(document_name: DocumentName) -> Self
Source§impl FromStr for DocumentName
impl FromStr for DocumentName
Source§impl Hash for DocumentName
impl Hash for DocumentName
Source§impl Ord for DocumentName
impl Ord for DocumentName
Source§fn cmp(&self, other: &DocumentName) -> Ordering
fn cmp(&self, other: &DocumentName) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for DocumentName
impl PartialEq for DocumentName
Source§impl PartialOrd for DocumentName
impl PartialOrd for DocumentName
Source§impl TryFrom<&str> for DocumentName
impl TryFrom<&str> for DocumentName
Source§impl TryFrom<String> for DocumentName
impl TryFrom<String> for DocumentName
impl Eq for DocumentName
impl StructuralPartialEq for DocumentName
Auto Trait Implementations§
impl Freeze for DocumentName
impl RefUnwindSafe for DocumentName
impl Send for DocumentName
impl Sync for DocumentName
impl Unpin for DocumentName
impl UnwindSafe for DocumentName
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
)