diff options
author | Nadrieril | 2020-10-28 21:59:14 +0000 |
---|---|---|
committer | Nadrieril | 2020-10-28 22:52:41 +0000 |
commit | 27377f045a2449c86ea3b680d168d2224c90e5e3 (patch) | |
tree | 547ace1bb05b27c87615326eebced52ef9a1e55b /serde_dhall/src/serialize.rs | |
parent | 3b728aff86a086f71f013b77a715c33748d9f6a8 (diff) |
Add missing documentation
Diffstat (limited to 'serde_dhall/src/serialize.rs')
-rw-r--r-- | serde_dhall/src/serialize.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/serde_dhall/src/serialize.rs b/serde_dhall/src/serialize.rs index 21b1931..632dace 100644 --- a/serde_dhall/src/serialize.rs +++ b/serde_dhall/src/serialize.rs @@ -9,6 +9,34 @@ use SimpleValue::*; pub trait Sealed {} +/// A data structure that can be serialized from a Dhall expression. +/// +/// This is automatically implemented for any type that [serde] can serialize. +/// In fact, this trait cannot be implemented manually. To implement it for your type, +/// use serde's derive mechanism. +/// +/// # Example +/// +/// ```rust +/// # fn main() -> serde_dhall::Result<()> { +/// use serde::Serialize; +/// +/// // Use serde's derive +/// #[derive(Serialize)] +/// struct Point { +/// x: u64, +/// y: u64, +/// } +/// +/// // Convert a Point to a Dhall string. +/// let point = Point { x: 0, y: 0 }; +/// let point_str = serde_dhall::serialize(&point).to_string()?; +/// assert_eq!(point_str, "{ x = 0, y = 0 }".to_string()); +/// # Ok(()) +/// # } +/// ``` +/// +/// [serde]: https://serde.rs pub trait ToDhall: Sealed { #[doc(hidden)] fn to_dhall(&self, ty: Option<&SimpleType>) -> Result<Value>; |