//! Foundational types and functions. pub mod calc; pub mod ops; pub mod repr; pub mod sys; mod args; mod array; mod auto; mod bool; mod bytes; mod cast; mod content; mod context; mod datetime; mod decimal; mod dict; mod duration; mod element; mod fields; mod float; mod func; mod int; mod label; mod module; mod none; mod plugin; mod scope; mod selector; mod str; mod styles; mod symbol; mod ty; mod value; mod version; pub use self::args::*; pub use self::array::*; pub use self::auto::*; pub use self::bytes::*; pub use self::cast::*; pub use self::content::*; pub use self::context::*; pub use self::datetime::*; pub use self::decimal::*; pub use self::dict::*; pub use self::duration::*; pub use self::element::*; pub use self::fields::*; pub use self::float::*; pub use self::func::*; pub use self::int::*; pub use self::label::*; pub use self::module::*; pub use self::none::*; pub use self::plugin::*; pub use self::repr::Repr; pub use self::scope::*; pub use self::selector::*; pub use self::str::*; pub use self::styles::*; pub use self::symbol::*; pub use self::ty::*; pub use self::value::*; pub use self::version::*; pub use typst_macros::{scope, ty}; #[rustfmt::skip] #[doc(hidden)] pub use { ecow::{eco_format, eco_vec}, indexmap::IndexMap, }; use ecow::EcoString; use typst_syntax::Spanned; use crate::diag::{bail, SourceResult, StrResult}; use crate::engine::Engine; use crate::routines::EvalMode; /// Foundational types and functions. /// /// Here, you'll find documentation for basic data types like [integers]($int) /// and [strings]($str) as well as details about core computational functions. #[category] pub static FOUNDATIONS: Category; /// Hook up all `foundations` definitions. pub(super) fn define(global: &mut Scope, inputs: Dict) { global.category(FOUNDATIONS); global.define_type::(); global.define_type::(); global.define_type::(); global.define_type::(); global.define_type::