Skip to main content

zenfg_snapshot/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs)]
3
4mod codec;
5mod error;
6mod json;
7// Public wire types are documented; item-level allows in `types.rs` defer only
8// exhaustive field and variant documentation for the schema-shaped data model.
9mod types;
10mod validator;
11
12pub use codec::{decode_frame_graph_snapshot, parse_frame_graph_snapshot};
13pub use error::{SnapshotDecodeError, SnapshotIssue, SnapshotIssueSeverity, SnapshotJsonError};
14pub use json::{to_json, to_json_pretty, validate_typed_frame_graph_snapshot};
15pub use types::*;
16pub use validator::validate_frame_graph_snapshot;
17
18/// Canonical `format` discriminator for ZenFG Snapshot 1.2 documents.
19pub const FRAME_GRAPH_SNAPSHOT_FORMAT: &str = "zenfg.frame-graph-snapshot";
20/// Historical pre-release `format` discriminator accepted for migration.
21pub const LEGACY_CANDIDATE_FRAME_GRAPH_SNAPSHOT_FORMAT: &str =
22    "zenfg.frame-graph-snapshot-candidate";
23/// Snapshot wire version emitted by this crate.
24pub const FRAME_GRAPH_SNAPSHOT_VERSION: SnapshotVersion = SnapshotVersion { major: 1, minor: 2 };
25/// Maximum number of nested JSON container levels allowed in one extension value.
26///
27/// Primitive extension values have depth zero. An extension value whose root is
28/// an object or array has depth one, and each nested object or array adds one.
29pub const FRAME_GRAPH_SNAPSHOT_MAX_EXTENSION_DEPTH: usize = 64;