#![cfg_attr(not(feature = "std"), no_std)]
#![warn(
clippy::pedantic,
clippy::decimal_literal_representation,
clippy::get_unwrap,
clippy::indexing_slicing
)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::non_ascii_literal)]
#![allow(clippy::if_not_else)]
#![allow(clippy::shadow_unrelated, clippy::shadow_reuse, clippy::shadow_same)]
#![allow(clippy::option_if_let_else)]
#![cfg_attr(test, allow(clippy::indexing_slicing))]
#![allow(clippy::trivially_copy_pass_by_ref)]
#![allow(unused_unsafe)]
#[cfg(feature = "alloc")]
#[macro_use]
extern crate alloc;
#[cfg(feature = "std")]
extern crate core;
#[cfg(feature = "serde")]
extern crate serde;
#[cfg(all(test, feature = "serde_test"))]
extern crate serde_test;
mod ascii_char;
mod ascii_str;
#[cfg(feature = "alloc")]
mod ascii_string;
mod free_functions;
#[cfg(feature = "serde")]
mod serialization;
pub use ascii_char::{AsciiChar, ToAsciiChar, ToAsciiCharError};
pub use ascii_str::{AsAsciiStr, AsAsciiStrError, AsMutAsciiStr, AsciiStr};
pub use ascii_str::{Chars, CharsMut, CharsRef};
#[cfg(feature = "alloc")]
pub use ascii_string::{AsciiString, FromAsciiError, IntoAsciiString};
pub use free_functions::{caret_decode, caret_encode};