//! Foundation runtime library for Trident 3
// MODULES //
/// TODO: document `alloc` module.
/// TODO: document `array` module.
/// TODO: document `error` module.
/// TODO: document `external` module.
/// TODO: document `io` module.
/// TODO: document `math` module.
/// TODO: document `memory` module.
/// Implements an FFI-safe [`Optional`][crate::optional::Optional] type, equivalent to
/// [`Option`][core::option::Option] in Standard Rust.
/// Various smart pointer implementations.
///
/// [`Unique`][crate::pointer::unique::Unique] is similar to `std::unique_ptr` in C++,
/// whereas [`Shared`][crate::pointer::shared::Shared] is similar to `std::shared_ptr` in C++ or
/// [`Arc`][alloc::sync::Arc].
/// System process tracking.
/// [`String`][crate::string::String]: A growable UTF-8 string.
/// Facilities for handling low-level system calls.
/// Coroutine handling facilities, i.e. `async`/`.await` and task runners.
/// Facilities for interacting with standard input/output.
/// A pair of UART (universal asynchronous receiver-transmitter) implementations, one memory-mapped,
/// and the other mapped to serial hardware.
///
/// [`SerialPort`][crate::uart::SerialPort]: Serial hardware-mapped UART, useful alongside pixel-buffers
/// for printing visual output.
///
/// [`MmioPort`][crate::uart::MmioPort]: A virtual, memory-mapped UART useful for the reasons above
/// on hardware that does not support physical UART hardware.
// IMPORTS //
extern crate alloc as std_alloc;
extern crate bitflags;
extern crate cfg_if;
extern crate conquer_once;
extern crate core;
extern crate crossbeam_queue;
extern crate lazy_static;
extern crate noto_sans_mono_bitmap;
extern crate rustversion;
extern crate spin;
extern crate spinning_top;
extern crate springboard_api;
extern crate x86;
extern crate x86_64;
// EXPORTS //
/// Export the [`log`](https://docs.rs/log/latest/log) crate to enable consistent logging without additional dependencies.
pub extern crate log;