serde_firestore_value/typ/reference.rs
1/// Reference
2///
3/// `referenceValue` inner type.
4///
5/// <https://firebase.google.com/docs/firestore/reference/rest/Shared.Types/ArrayValue#Value>
6///
7/// # Examples
8///
9/// ```rust
10/// # fn test_reference() -> Result<(), serde_firestore_value::Error> {
11/// # use serde_firestore_value::google::firestore::v1::{value::ValueType, Value};
12/// # use serde_firestore_value::{from_value, to_value, Reference};
13/// let inner = "projects/p/databases/d/documents/c/d";
14/// let o = Reference(inner.to_string());
15/// let v = Value {
16/// value_type: Some(ValueType::ReferenceValue(inner.to_string())),
17/// };
18/// let s = to_value(&o)?;
19/// let d = from_value::<'_, Reference>(&s)?;
20/// assert_eq!(s, v);
21/// assert_eq!(d, o);
22/// # Ok(())
23/// # }
24/// ```
25#[derive(
26 Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, serde::Deserialize, serde::Serialize,
27)]
28#[serde(rename = "$__serde-firestore-value_private_reference")]
29pub struct Reference(pub String);
30
31impl Reference {
32 pub(crate) const NAME: &'static str = "$__serde-firestore-value_private_reference";
33}
34
35impl From<Reference> for String {
36 fn from(Reference(s): Reference) -> Self {
37 s
38 }
39}
40
41impl From<String> for Reference {
42 fn from(s: String) -> Self {
43 Self(s)
44 }
45}