aboutsummaryrefslogtreecommitdiff
path: root/src/data/maybe_serializable_data.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/maybe_serializable_data.rs')
-rw-r--r--src/data/maybe_serializable_data.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/data/maybe_serializable_data.rs b/src/data/maybe_serializable_data.rs
new file mode 100644
index 0000000..db38963
--- /dev/null
+++ b/src/data/maybe_serializable_data.rs
@@ -0,0 +1,14 @@
+use downcast_rs::{impl_downcast, DowncastSync};
+#[cfg(feature = "serde-serialize")]
+use erased_serde::Serialize;
+
+/// Piece of data that may be serializable.
+pub trait MaybeSerializableData: DowncastSync {
+ /// Convert this shape as a serializable entity.
+ #[cfg(feature = "serde-serialize")]
+ fn as_serialize(&self) -> Option<(u32, &dyn Serialize)> {
+ None
+ }
+}
+
+impl_downcast!(sync MaybeSerializableData);