1#![forbid(unsafe_code)]
2#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
6#![cfg_attr(
7 all(doctest, feature = "serialize", feature = "deserialize"),
8 doc = include_str!("../README.md")
9)]
10
11#[cfg(not(any(feature = "serialize", feature = "deserialize")))]
12compile_error!(
13 "Invalid feature configuration: enable at least one of \
14 \"serialize\" or \"deserialize\"."
15);
16
17#[cfg(all(feature = "deserialize", feature = "properties"))]
18pub use self::de::PropertySyntax;
19#[cfg(all(feature = "deserialize", any(feature = "garde", feature = "validator")))]
20pub use self::de_error::{ValidationIssue, ValidationSource};
21#[cfg(all(feature = "serialize", feature = "comments"))]
22pub use self::ser::options::CommentPosition;
23#[cfg(feature = "serialize")]
24pub use self::ser::{Error as SerializeError, error as ser_error, options::SerializerOptions};
25#[cfg(feature = "deserialize")]
26pub use self::{
27 de::{
28 Budget, DuplicateKeyPolicy, Error, Error as DeserializeError, MergeKeyPolicy,
29 NonFiniteFloatPolicy, Options, budget, localizer, options,
30 },
31 de_error::{
32 CroppedRegion, MessageFormatter, RenderOptions, SnippetMode, TransformReason,
33 UserMessageFormatter,
34 },
35 indentation::RequireIndent,
36 input_source::{
37 IncludeRequest, IncludeResolveError, IncludeResolver, InputSource, ResolveProblem,
38 ResolvedInclude,
39 },
40 localizer::{
41 DEFAULT_ENGLISH_LOCALIZER, DefaultEnglishLocalizer, ExternalMessage, ExternalMessageSource,
42 Localizer,
43 },
44 message_formatters::{DefaultMessageFormatter, DeveloperMessageFormatter},
45};
46pub use anchors::{
47 ArcAnchor, ArcRecursion, ArcRecursive, ArcWeakAnchor, RcAnchor, RcRecursion, RcRecursive,
48 RcWeakAnchor,
49};
50#[cfg(feature = "figment")]
51pub use de::figment;
52#[cfg(feature = "figment2")]
53pub use de::figment2;
54#[cfg(feature = "miette")]
55pub use de::miette;
56#[cfg(any(feature = "garde", feature = "validator"))]
57pub use de::path_map;
58#[cfg(feature = "properties")]
59pub use de::properties;
60#[cfg(feature = "robotics")]
61pub use de::robotics;
62#[cfg(all(feature = "deserialize", feature = "include_fs"))]
63pub use de::safe_resolver::{SafeFileReadMode, SafeFileResolver, SymlinkPolicy};
64#[cfg(feature = "deserialize")]
65pub use granit_parser;
66pub use location::{Location, Locations};
67pub use long_strings::{FoldStr, FoldString, LitStr, LitString};
68pub use span::Span;
69pub use spanned::Spanned;
70#[cfg(all(
71 feature = "comments",
72 any(feature = "serialize", feature = "deserialize")
73))]
74pub use wrappers::Commented;
75#[cfg(any(feature = "serialize", feature = "deserialize"))]
76pub use wrappers::{
77 DoubleQuoted, FlowMap, FlowSeq, NullableTilde, SingleQuoted, SpaceAfter, Tagged,
78};
79
80#[cfg(all(feature = "deserialize", feature = "include"))]
81pub(crate) use self::de::api::resolver_from_options;
82#[cfg(feature = "deserialize")]
83pub use self::de::api::{
84 from_bytes_multiple, from_bytes_multiple_with_options, from_multiple,
85 from_multiple_with_options, from_reader, from_reader_with_options, from_slice,
86 from_slice_multiple, from_slice_multiple_with_options, from_slice_with_options, from_str,
87 from_str_multiple, from_str_multiple_with_options, from_str_with_options, read,
88 read_with_options,
89};
90#[cfg(feature = "serialize")]
91pub use self::ser::api::{
92 to_fmt_writer, to_fmt_writer_with_options, to_io_writer, to_io_writer_with_options, to_string,
93 to_string_multiple, to_string_multiple_with_options, to_string_with_options,
94};
95
96#[cfg(feature = "deserialize")]
97mod anchor_store;
98mod anchors;
99#[cfg(all(
100 feature = "serialize",
101 feature = "deserialize",
102 feature = "include",
103 feature = "include_fs"
104))]
105#[doc(hidden)]
106pub mod cli;
107#[cfg(feature = "deserialize")]
108mod de;
109mod location;
110mod long_strings;
111mod parse_scalars;
112#[cfg(feature = "serialize")]
113pub mod ser;
114mod span;
115mod spanned;
116#[cfg(any(feature = "serialize", feature = "deserialize"))]
117mod tag;
118#[cfg(any(feature = "serialize", feature = "deserialize"))]
119mod wrappers;
120
121#[cfg(all(feature = "deserialize", feature = "include"))]
122pub(crate) use de::include_stack;
123#[cfg(any(feature = "garde", feature = "validator"))]
124use de::lib_validate;
125#[cfg(feature = "deserialize")]
126pub(crate) use de::{
127 buffered_input, error as de_error, include, indentation, input_source, live_events,
128 message_formatters, properties_redaction, snippet as de_snippet, tags,
129};
130
131#[cfg(feature = "deserialize")]
132pub use de::YamlDeserializer as Deserializer;
133#[cfg(any(feature = "garde", feature = "validator"))]
134pub use lib_validate::*;
135#[cfg(feature = "serialize")]
136pub use ser::YamlSerializer as Serializer;
137
138#[cfg(feature = "deserialize")]
139pub use de::{
140 with_deserializer_from_reader, with_deserializer_from_reader_with_options,
141 with_deserializer_from_slice, with_deserializer_from_slice_with_options,
142 with_deserializer_from_str, with_deserializer_from_str_with_options,
143};
144
145mod macros;