1#[doc(hidden)]
12pub extern crate serde as __serde;
13
14mod boolean;
15mod counter;
16mod custom_distribution;
17mod datetime;
18mod dual_labeled_counter;
19mod event;
20mod labeled;
21mod memory_distribution;
22mod numerator;
23mod object;
24mod ping;
25mod quantity;
26mod rate;
27mod string;
28mod string_list;
29mod text;
30mod timespan;
31mod timing_distribution;
32mod url;
33mod uuid;
34
35pub use self::boolean::Boolean;
36pub use self::counter::Counter;
37pub use self::custom_distribution::CustomDistribution;
38pub use self::datetime::Datetime;
39pub use self::dual_labeled_counter::DualLabeledCounter;
40pub use self::event::Event;
41pub use self::event::EventRecordingError;
42pub use self::event::ExtraKeys;
43pub use self::event::NoExtraKeys;
44pub use self::labeled::Labeled;
45pub use self::memory_distribution::MemoryDistribution;
46pub use self::numerator::Numerator;
47pub use self::object::{ObjectError, ObjectSerialize};
48pub use self::ping::Ping;
49pub use self::quantity::Quantity;
50pub use self::rate::Rate;
51pub use self::string::String;
52pub use self::string_list::StringList;
53pub use self::text::Text;
54pub use self::timespan::Timespan;
55pub use self::timing_distribution::TimingDistribution;
56pub use self::url::Url;
57pub use self::uuid::Uuid;
58pub use crate::histogram::HistogramType;
59
60#[doc(hidden)]
61pub mod __serde_helper {
62 pub fn vec_null<'de, D: serde::Deserializer<'de>, T: serde::Deserialize<'de>>(
66 d: D,
67 ) -> Result<Vec<T>, D::Error> {
68 let res: Option<Vec<T>> = serde::Deserialize::deserialize(d)?;
69 Ok(res.unwrap_or_default())
70 }
71}