use crate::extension::ExtensionRegistry;
use std::sync::LazyLock;
pub mod arithmetic;
pub mod collections;
pub mod logic;
pub mod ptr;
#[must_use]
pub fn std_reg() -> ExtensionRegistry {
let reg = ExtensionRegistry::new([
crate::extension::prelude::PRELUDE.clone(),
arithmetic::int_ops::EXTENSION.to_owned(),
arithmetic::int_types::EXTENSION.to_owned(),
arithmetic::conversions::EXTENSION.to_owned(),
arithmetic::float_ops::EXTENSION.to_owned(),
arithmetic::float_types::EXTENSION.to_owned(),
collections::array::EXTENSION.to_owned(),
collections::list::EXTENSION.to_owned(),
collections::borrow_array::EXTENSION.to_owned(),
collections::static_array::EXTENSION.to_owned(),
logic::EXTENSION.to_owned(),
ptr::EXTENSION.to_owned(),
]);
reg.validate()
.expect("Standard extension registry is valid");
reg
}
pub static STD_REG: LazyLock<ExtensionRegistry> = LazyLock::new(std_reg);