//! High level device tree handling library.
//!
//! Main functionality:
//!
//! * Creation of device tree-based drivers for devices
//! * Collection, initialization and hierarchy for device tree nodes.
//!
//! For example drivers, see the following code in the kernel:
//!
//! * `pl011` - basic peripheral usage with `reg` and `interrupts`
//! * `gic` in aarch64 - interrupt controller/mapper implementation
#![cfg_attr(any(not(test), rust_analyzer), no_std)]
#![feature(trait_alias, let_chains, decl_macro)]
#![allow(clippy::type_complexity)]
#![warn(missing_docs)]

extern crate alloc;

pub mod driver;

pub mod node;
pub mod property;
pub mod tree;
pub mod util;

pub use node::DeviceTreeNodeExt;
pub use property::DeviceTreePropertyRead;
pub use tree::{DeviceTree, TNode, TProp};
pub use util::DeviceTreeMemoryRegionIter;
