1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Types and traits for building JSON-based protocols and schemas
//!
//! This crate provides the types and aliases that are used for the meta part of the protocol. This
//! is the core annotation system as well as the dynamic value parts and the metadata that goes with
//! it.
//!
//! # Test Utilities
//!
//! When the `test` feature is enabled, this crate exposes the additional
//! `assert_annotated_snapshot` macro. This can be used with `insta` to render and compare snapshots
//! of annotated data with meta data.

#![warn(missing_docs)]
#![doc(
    html_logo_url = "https://raw.githubusercontent.com/getsentry/relay/master/artwork/relay-icon.png",
    html_favicon_url = "https://raw.githubusercontent.com/getsentry/relay/master/artwork/relay-icon.png"
)]

pub mod condition;

mod annotated;
mod impls;
mod macros;
mod meta;
mod size;
mod traits;
mod value;

pub use self::annotated::*;
pub use self::condition::RuleCondition;
pub use self::impls::*;
pub use self::meta::*;
pub use self::size::*;
pub use self::traits::*;
pub use self::value::*;

#[cfg(feature = "derive")]
pub use relay_protocol_derive::{Empty, FromValue, IntoValue};