azalia_config/lib.rs
1// 🐻❄️🪚 azalia: Noelware's Rust commons library.
2// Copyright (c) 2024-2025 Noelware, LLC. <team@noelware.org>
3//
4// Permission is hereby granted, free of charge, to any person obtaining a copy
5// of this software and associated documentation files (the "Software"), to deal
6// in the Software without restriction, including without limitation the rights
7// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8// copies of the Software, and to permit persons to whom the Software is
9// furnished to do so, subject to the following conditions:
10//
11// The above copyright notice and this permission notice shall be included in all
12// copies or substantial portions of the Software.
13//
14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20// SOFTWARE.
21
22//! # 🐻❄️🪚 `azalia-config`
23//! The **azalia_config** Rust crate defines types and utilities dealing with application configuration.
24#![doc(html_logo_url = "https://cdn.floofy.dev/images/trans.png")]
25#![doc(html_favicon_url = "https://cdn.floofy.dev/images/trans.png")]
26#![cfg_attr(any(noeldoc, docsrs), feature(doc_cfg))]
27#![cfg_attr(not(feature = "std"), no_std)]
28
29#[cfg(all(not(feature = "std"), feature = "alloc"))]
30extern crate alloc;
31
32#[cfg(feature = "std")]
33#[cfg_attr(any(noeldoc, docsrs), doc(cfg(feature = "std")))]
34pub mod env;
35pub mod merge;
36
37#[cfg(feature = "std")]
38pub(crate) mod libstd {
39 pub use std::{
40 collections::{BTreeMap, BTreeSet, HashMap, HashSet},
41 hash::Hash,
42 num,
43 string::String,
44 vec::Vec,
45 };
46}
47
48#[cfg(not(feature = "std"))]
49pub(crate) mod libstd {
50 pub use core::num;
51
52 #[cfg(feature = "alloc")]
53 pub use alloc::{
54 collections::{BTreeMap, BTreeSet},
55 string::String,
56 vec::Vec,
57 };
58}