hcl_edit/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs, clippy::pedantic)]
3#![allow(
4    clippy::bool_to_int_with_if,
5    clippy::let_underscore_untyped,
6    clippy::manual_div_ceil,
7    clippy::module_name_repetitions,
8    clippy::must_use_candidate,
9    clippy::naive_bytecount,
10    clippy::needless_lifetimes,
11    clippy::return_self_not_must_use
12)]
13
14extern crate alloc;
15
16#[macro_use]
17mod macros;
18
19mod encode;
20pub mod expr;
21pub mod parser;
22mod raw_string;
23#[doc(hidden)]
24pub mod repr;
25pub mod structure;
26pub mod template;
27mod util;
28pub mod visit;
29pub mod visit_mut;
30
31pub use self::raw_string::RawString;
32use self::repr::SetSpan;
33pub use self::repr::{Decor, Decorate, Decorated, Formatted, Span, Spanned};
34
35// Re-exported for convenience.
36#[doc(inline)]
37pub use hcl_primitives::{Ident, Number};
38
39/// Core concepts available for glob import.
40///
41/// This includes useful traits like [`Decorate`] and [`Span`].
42///
43/// # Example
44///
45/// ```
46/// use hcl_edit::expr::Expression;
47/// use hcl_edit::prelude::*;
48///
49/// let mut expr = Expression::from("A string");
50/// expr.decor_mut().set_suffix(" // Comment.");
51/// assert_eq!(expr.to_string(), r#""A string" // Comment."#);
52/// ```
53pub mod prelude {
54    pub use crate::{Decorate, Span};
55}