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}