texform_knowledge/builtin/
mod.rs1use crate::specs::{
2 BuiltinCharacterRecord, BuiltinCommandRecord, BuiltinDelimiterRecord, BuiltinEnvironmentRecord,
3};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
6pub struct BuiltinPackage {
7 pub name: &'static str,
8 pub commands: &'static [&'static BuiltinCommandRecord],
9 pub environments: &'static [&'static BuiltinEnvironmentRecord],
10 pub characters: &'static [&'static BuiltinCharacterRecord],
11 pub delimiters: &'static [&'static BuiltinDelimiterRecord],
12}
13
14mod generated_prelude {
15 pub use crate::specs::{
16 AllowedMode, BuiltinCharacterAttributes, BuiltinCharacterRecord, BuiltinCommandRecord,
17 BuiltinDelimiterRecord, BuiltinEnvironmentRecord, CommandKind, ContentMode,
18 };
19}
20
21include!(concat!(env!("OUT_DIR"), "/builtin_generated.rs"));
22
23pub fn lookup_package(name: &str) -> Option<&'static BuiltinPackage> {
24 ALL_PACKAGES.iter().find(|pkg| pkg.name == name)
25}
26
27pub fn managed_package_import_order() -> &'static [PackageName] {
28 MANAGED_PACKAGE_IMPORT_ORDER
29}
30
31pub fn all_package_names() -> Vec<&'static str> {
32 ALL_PACKAGES.iter().map(|pkg| pkg.name).collect()
33}