pub struct DatabaseName { /* private fields */ }
Expand description
A database name.
§Format
projects/{project_id}/databases/{database_id}
§Examples
use firestore_path::{DatabaseId,DatabaseName,ProjectId,RootDocumentName};
use std::str::FromStr;
let database_name = DatabaseName::from_project_id("my-project")?;
assert_eq!(database_name.to_string(), "projects/my-project/databases/(default)");
assert_eq!(
database_name.root_document_name(),
RootDocumentName::from_str("projects/my-project/databases/(default)/documents")?
);
assert_eq!(
database_name.database_id(),
&DatabaseId::from_str("(default)")?
);
assert_eq!(
database_name.project_id(),
&ProjectId::from_str("my-project")?
);
assert_eq!(
DatabaseId::from(database_name.clone()),
DatabaseId::from_str("(default)")?
);
assert_eq!(
ProjectId::from(database_name.clone()),
ProjectId::from_str("my-project")?
);
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
assert_eq!(database_name.to_string(), "projects/my-project/databases/my-database");
let project_id = ProjectId::from_str("my-project")?;
let database_id = DatabaseId::from_str("my-database")?;
let database_name = DatabaseName::new(project_id, database_id);
assert_eq!(database_name.to_string(), "projects/my-project/databases/my-database");
let project_id = ProjectId::from_str("my-project")?;
let database_id = DatabaseId::default();
let database_name = DatabaseName::new(project_id, database_id);
assert_eq!(database_name.to_string(), "projects/my-project/databases/(default)");
Implementations§
Source§impl DatabaseName
impl DatabaseName
Sourcepub fn new(project_id: ProjectId, database_id: DatabaseId) -> Self
pub fn new(project_id: ProjectId, database_id: DatabaseId) -> Self
Creates a new DatabaseName
.
§Examples
use firestore_path::{DatabaseId,DatabaseName,ProjectId};
use std::str::FromStr;
let project_id = ProjectId::from_str("my-project")?;
let database_id = DatabaseId::from_str("my-database")?;
let database_name = DatabaseName::new(project_id, database_id);
assert_eq!(database_name.to_string(), "projects/my-project/databases/my-database");
Sourcepub fn from_project_id<P>(project_id: P) -> Result<Self, Error>
pub fn from_project_id<P>(project_id: P) -> Result<Self, Error>
Creates a new DatabaseName
with the provided project_id
and default database_id
.
§Examples
use firestore_path::{DatabaseName, ProjectId};
use std::str::FromStr;
let database_name = DatabaseName::from_project_id("my-project")?;
assert_eq!(database_name.to_string(), "projects/my-project/databases/(default)");
let project_id = ProjectId::from_str("my-project")?;
let database_name = DatabaseName::from_project_id(project_id)?;
assert_eq!(database_name.to_string(), "projects/my-project/databases/(default)");
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 DatabaseName
and collection_path
.
§Examples
use firestore_path::{CollectionId,CollectionName,CollectionPath,DatabaseName};
use std::str::FromStr;
let database_name = DatabaseName::from_str(
"projects/my-project/databases/my-database"
)?;
assert_eq!(
database_name.collection("chatrooms")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
assert_eq!(
database_name.collection("chatrooms/chatroom1/messages")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
database_name.collection(CollectionId::from_str("chatrooms")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
assert_eq!(
database_name.collection(CollectionPath::from_str("chatrooms/chatroom1/messages")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
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
by consuming the DatabaseName
with the provided collection_path
.
§Examples
use firestore_path::{CollectionId,CollectionName,CollectionPath,DatabaseName};
use std::str::FromStr;
let database_name = DatabaseName::from_str(
"projects/my-project/databases/my-database"
)?;
assert_eq!(
database_name.clone().into_collection("chatrooms")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
assert_eq!(
database_name.clone().into_collection("chatrooms/chatroom1/messages")?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
assert_eq!(
database_name.clone().into_collection(CollectionId::from_str("chatrooms")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms"
)?
);
assert_eq!(
database_name.into_collection(CollectionPath::from_str("chatrooms/chatroom1/messages")?)?,
CollectionName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages"
)?
);
Sourcepub fn database_id(&self) -> &DatabaseId
pub fn database_id(&self) -> &DatabaseId
Returns the DatabaseId
of this DatabaseName
.
§Examples
use firestore_path::{DatabaseId,DatabaseName};
use std::str::FromStr;
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
assert_eq!(
database_name.database_id(),
&DatabaseId::from_str("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 DatabaseName
and document_path
.
§Examples
use firestore_path::{DocumentName,DocumentPath,DatabaseName};
use std::str::FromStr;
let database_name = DatabaseName::from_str(
"projects/my-project/databases/my-database"
)?;
assert_eq!(
database_name.doc("chatrooms/chatroom1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?
);
assert_eq!(
database_name.doc("chatrooms/chatroom1/messages/message1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
database_name.doc(DocumentPath::from_str("chatrooms/chatroom1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?
);
assert_eq!(
database_name.doc(DocumentPath::from_str("chatrooms/chatroom1/messages/message1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
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 DatabaseName
with the provided document_path
.
§Examples
use firestore_path::{DocumentName,DocumentPath,DatabaseName};
use std::str::FromStr;
let database_name = DatabaseName::from_str(
"projects/my-project/databases/my-database"
)?;
assert_eq!(
database_name.clone().into_doc("chatrooms/chatroom1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?
);
assert_eq!(
database_name.clone().into_doc("chatrooms/chatroom1/messages/message1")?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
assert_eq!(
database_name.clone().into_doc(DocumentPath::from_str("chatrooms/chatroom1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1"
)?
);
assert_eq!(
database_name.into_doc(DocumentPath::from_str("chatrooms/chatroom1/messages/message1")?)?,
DocumentName::from_str(
"projects/my-project/databases/my-database/documents/chatrooms/chatroom1/messages/message1"
)?
);
Sourcepub fn into_root_document_name(self) -> RootDocumentName
pub fn into_root_document_name(self) -> RootDocumentName
Consumes the DatabaseName
, returning the RootDocumentName
.
§Examples
use firestore_path::{DatabaseName,RootDocumentName};
use std::str::FromStr;
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
assert_eq!(
database_name.into_root_document_name(),
RootDocumentName::from_str("projects/my-project/databases/my-database/documents")?
);
Sourcepub fn project_id(&self) -> &ProjectId
pub fn project_id(&self) -> &ProjectId
Returns the ProjectId
of this DatabaseName
.
§Examples
use firestore_path::{DatabaseName,ProjectId};
use std::str::FromStr;
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
assert_eq!(
database_name.project_id(),
&ProjectId::from_str("my-project")?
);
Sourcepub fn root_document_name(&self) -> RootDocumentName
pub fn root_document_name(&self) -> RootDocumentName
Returns a new RootDocumentName
from this DatabaseName
.
§Examples
use firestore_path::{DatabaseName,RootDocumentName};
use std::str::FromStr;
let database_name = DatabaseName::from_str("projects/my-project/databases/my-database")?;
assert_eq!(
database_name.root_document_name(),
RootDocumentName::from_str("projects/my-project/databases/my-database/documents")?
);
Trait Implementations§
Source§impl Clone for DatabaseName
impl Clone for DatabaseName
Source§fn clone(&self) -> DatabaseName
fn clone(&self) -> DatabaseName
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for DatabaseName
impl Debug for DatabaseName
Source§impl Display for DatabaseName
impl Display for DatabaseName
Source§impl From<CollectionName> for DatabaseName
impl From<CollectionName> for DatabaseName
Source§fn from(collection_name: CollectionName) -> Self
fn from(collection_name: CollectionName) -> Self
Converts to this type from the input type.
Source§impl From<DatabaseName> for DatabaseId
impl From<DatabaseName> for DatabaseId
Source§fn from(database_name: DatabaseName) -> Self
fn from(database_name: DatabaseName) -> Self
Converts to this type from the input type.
Source§impl From<DatabaseName> for ProjectId
impl From<DatabaseName> for ProjectId
Source§fn from(database_name: DatabaseName) -> Self
fn from(database_name: DatabaseName) -> Self
Converts to this type from the input type.
Source§impl From<DatabaseName> for RootDocumentName
impl From<DatabaseName> for RootDocumentName
Source§fn from(database_name: DatabaseName) -> Self
fn from(database_name: DatabaseName) -> Self
Converts to this type from the input type.
Source§impl From<DocumentName> for DatabaseName
impl From<DocumentName> for DatabaseName
Source§fn from(document_name: DocumentName) -> Self
fn from(document_name: DocumentName) -> Self
Converts to this type from the input type.
Source§impl From<RootDocumentName> for DatabaseName
impl From<RootDocumentName> for DatabaseName
Source§fn from(root_document_name: RootDocumentName) -> Self
fn from(root_document_name: RootDocumentName) -> Self
Converts to this type from the input type.
Source§impl FromStr for DatabaseName
impl FromStr for DatabaseName
Source§impl Hash for DatabaseName
impl Hash for DatabaseName
Source§impl Ord for DatabaseName
impl Ord for DatabaseName
Source§fn cmp(&self, other: &DatabaseName) -> Ordering
fn cmp(&self, other: &DatabaseName) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for DatabaseName
impl PartialEq for DatabaseName
Source§impl PartialOrd for DatabaseName
impl PartialOrd for DatabaseName
Source§impl TryFrom<&str> for DatabaseName
impl TryFrom<&str> for DatabaseName
Source§impl TryFrom<String> for DatabaseName
impl TryFrom<String> for DatabaseName
impl Eq for DatabaseName
impl StructuralPartialEq for DatabaseName
Auto Trait Implementations§
impl Freeze for DatabaseName
impl RefUnwindSafe for DatabaseName
impl Send for DatabaseName
impl Sync for DatabaseName
impl Unpin for DatabaseName
impl UnwindSafe for DatabaseName
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
Mutably borrows from an owned value. Read more