Skip to main content

serde_saphyr/
lib.rs

1#![forbid(unsafe_code)]
2// The README documents both halves of the default API. Always render it as the
3// crate-level documentation, but only extract its doctests when both halves are
4// available.
5#![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;