aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/renderer/structural/structural_data.rs
blob: 1cafac337de37b739582d20f92a1a7c975f32b7f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use serde::Serialize;

/// Marker trait for types that support structured output (JSON / YAML / TOML / RON).
///
/// This trait is a **supertrait** of `serde::Serialize` and is sealed via
/// `__private::StructuralDataSealed`. It can only be implemented through:
///
/// - `#[derive(StructuralData)]`
/// - `pack_structural!`
/// - `group_structural!`
///
/// These entry points also register the type in the global `STRUCTURED_TYPES`
/// registry, which is required for the `structural_render` match arm to be generated.
#[doc(hidden)]
pub trait StructuralData: Serialize + crate::__private::StructuralDataSealed {}