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 more