summaryrefslogtreecommitdiff
path: root/serde_dhall/src/serialize.rs
diff options
context:
space:
mode:
authorNadrieril2020-10-28 21:59:14 +0000
committerNadrieril2020-10-28 22:52:41 +0000
commit27377f045a2449c86ea3b680d168d2224c90e5e3 (patch)
tree547ace1bb05b27c87615326eebced52ef9a1e55b /serde_dhall/src/serialize.rs
parent3b728aff86a086f71f013b77a715c33748d9f6a8 (diff)
Add missing documentation
Diffstat (limited to '')
-rw-r--r--serde_dhall/src/serialize.rs28
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>;