pub mod format;
pub mod iso_date_format;
pub mod java_date_format;
pub use crate::core::built_ins_for_strings_encoding as strings_encoding;
use crate::core::{Environment, Expr};
use crate::error::Result;
use crate::template::TModel;
pub type BuiltinFn = fn(&mut Environment, &Expr, Option<&[Expr]>) -> Result<Option<TModel>>;
pub fn lookup(name: &str) -> Option<BuiltinFn> {
match name {
"capitalize" => Some(crate::core::built_ins_for_strings_basic::capitalize),
"uncap_first" => Some(crate::core::built_ins_for_strings_basic::uncap_first),
"c_lower_case" => Some(crate::core::built_ins_for_strings_basic::c_lower_case),
"c_upper_case" => Some(crate::core::built_ins_for_strings_basic::c_upper_case),
"chop_linebreak" => Some(crate::core::built_ins_for_strings_basic::chop_linebreak),
"keep_before" => Some(crate::core::built_ins_for_strings_basic::keep_before),
"keep_before_last" => Some(crate::core::built_ins_for_strings_basic::keep_before_last),
"keep_after" => Some(crate::core::built_ins_for_strings_basic::keep_after),
"keep_after_last" => Some(crate::core::built_ins_for_strings_basic::keep_after_last),
"remove_beginning" => Some(crate::core::built_ins_for_strings_basic::remove_beginning),
"remove_ending" => Some(crate::core::built_ins_for_strings_basic::remove_ending),
"ensure_starts_with" => Some(crate::core::built_ins_for_strings_basic::ensure_starts_with),
"ensure_ends_with" => Some(crate::core::built_ins_for_strings_basic::ensure_ends_with),
"left_pad" => Some(crate::core::built_ins_for_strings_basic::left_pad),
"right_pad" => Some(crate::core::built_ins_for_strings_basic::right_pad),
"last_index_of" => Some(crate::core::built_ins_for_strings_basic::last_index_of),
"truncate" => Some(crate::core::built_ins_for_strings_basic::truncate),
"truncate_w" => Some(crate::core::built_ins_for_strings_basic::truncate_w),
"truncate_c" => Some(crate::core::built_ins_for_strings_basic::truncate_c),
"truncate_m" => Some(crate::core::built_ins_for_strings_basic::truncate_m),
"truncate_w_m" => Some(crate::core::built_ins_for_strings_basic::truncate_w_m),
"truncate_c_m" => Some(crate::core::built_ins_for_strings_basic::truncate_c_m),
"j_string" => Some(crate::core::built_ins_for_strings_encoding::j_string),
"js_string" => Some(crate::core::built_ins_for_strings_encoding::js_string),
"json_string" => Some(crate::core::built_ins_for_strings_encoding::json_string),
"url" => Some(crate::core::built_ins_for_strings_encoding::url),
"url_path" => Some(crate::core::built_ins_for_strings_encoding::url_path),
"rtf" => Some(crate::core::built_ins_for_strings_encoding::rtf),
"xhtml" => Some(crate::core::built_ins_for_strings_encoding::xhtml),
"esc" => Some(crate::core::built_ins_for_markup_outputs::esc),
"no_esc" => Some(crate::core::built_ins_for_markup_outputs::no_esc),
"matches" => Some(crate::core::built_ins_for_strings_regexp::matches),
"eval_json" => Some(crate::core::built_ins_for_strings_misc::eval_json),
"groups" => Some(crate::core::built_ins_for_strings_regexp::groups),
"replace" => Some(crate::core::built_ins_for_strings_regexp::replace),
"replace_re" => Some(crate::core::built_ins_for_strings_regexp::replace),
"split" => Some(crate::core::built_ins_for_strings_regexp::split),
"chunk" => Some(crate::core::built_ins_for_sequences::chunk),
"filter" => Some(crate::core::built_ins_for_sequences::filter),
"map" => Some(crate::core::built_ins_for_sequences::map),
"take_while" => Some(crate::core::built_ins_for_sequences::take_while),
"drop_while" => Some(crate::core::built_ins_for_sequences::drop_while),
"sort" => Some(crate::core::built_ins_for_sequences::sort),
"sort_by" => Some(crate::core::built_ins_for_sequences::sort_by),
"min" => Some(crate::core::built_ins_for_sequences::min),
"max" => Some(crate::core::built_ins_for_sequences::max),
"seq_index_of" => Some(crate::core::built_ins_for_sequences::seq_index_of),
"seq_last_index_of" => Some(crate::core::built_ins_for_sequences::seq_last_index_of),
"sequence" => Some(crate::core::built_ins_for_sequences::sequence),
"keys" => Some(crate::core::built_ins_for_hashes::keys),
"values" => Some(crate::core::built_ins_for_hashes::values),
"abs" => Some(crate::core::built_ins_for_numbers::abs),
"ceiling" => Some(crate::core::built_ins_for_numbers::ceiling),
"floor" => Some(crate::core::built_ins_for_numbers::floor),
"round" => Some(crate::core::built_ins_for_numbers::round),
"byte" => Some(crate::core::built_ins_for_numbers::byte),
"short" => Some(crate::core::built_ins_for_numbers::short),
"is_nan" => Some(crate::core::built_ins_for_numbers::is_nan),
"is_infinite" => Some(crate::core::built_ins_for_numbers::is_infinite),
"lower_abc" => Some(crate::core::built_ins_for_numbers::lower_abc),
"upper_abc" => Some(crate::core::built_ins_for_numbers::upper_abc),
"number_to_date" => Some(crate::core::built_ins_for_numbers::number_to_date),
"number_to_time" => Some(crate::core::built_ins_for_numbers::number_to_time),
"number_to_datetime" => Some(crate::core::built_ins_for_numbers::number_to_datetime),
"date" => Some(crate::core::built_ins_for_dates::date),
"time" => Some(crate::core::built_ins_for_dates::time),
"datetime" => Some(crate::core::built_ins_for_dates::datetime),
"iso" => Some(crate::core::built_ins_for_dates::iso),
"iso_nz" => Some(crate::core::built_ins_for_dates::iso_nz),
"iso_fz" => Some(crate::core::built_ins_for_dates::iso_fz),
"iso_ms" => Some(crate::core::built_ins_for_dates::iso_ms),
"iso_ms_nz" => Some(crate::core::built_ins_for_dates::iso_ms_nz),
"iso_m" => Some(crate::core::built_ins_for_dates::iso_m),
"iso_m_nz" => Some(crate::core::built_ins_for_dates::iso_m_nz),
"iso_h" => Some(crate::core::built_ins_for_dates::iso_h),
"iso_h_nz" => Some(crate::core::built_ins_for_dates::iso_h_nz),
"iso_utc" => Some(crate::core::built_ins_for_dates::iso_utc),
"iso_utc_fz" => Some(crate::core::built_ins_for_dates::iso_utc_fz),
"iso_utc_nz" => Some(crate::core::built_ins_for_dates::iso_utc_nz),
"iso_utc_ms" => Some(crate::core::built_ins_for_dates::iso_utc_ms),
"iso_utc_ms_nz" => Some(crate::core::built_ins_for_dates::iso_utc_ms_nz),
"iso_utc_m" => Some(crate::core::built_ins_for_dates::iso_utc_m),
"iso_utc_m_nz" => Some(crate::core::built_ins_for_dates::iso_utc_m_nz),
"iso_utc_h" => Some(crate::core::built_ins_for_dates::iso_utc_h),
"iso_utc_h_nz" => Some(crate::core::built_ins_for_dates::iso_utc_h_nz),
"iso_local" => Some(crate::core::built_ins_for_dates::iso_local),
"iso_local_nz" => Some(crate::core::built_ins_for_dates::iso_local_nz),
"iso_local_ms" => Some(crate::core::built_ins_for_dates::iso_local_ms),
"iso_local_ms_nz" => Some(crate::core::built_ins_for_dates::iso_local_ms_nz),
"iso_local_m" => Some(crate::core::built_ins_for_dates::iso_local_m),
"iso_local_m_nz" => Some(crate::core::built_ins_for_dates::iso_local_m_nz),
"iso_local_h" => Some(crate::core::built_ins_for_dates::iso_local_h),
"iso_local_h_nz" => Some(crate::core::built_ins_for_dates::iso_local_h_nz),
"date_if_unknown" => Some(crate::core::built_ins_for_dates::date_if_unknown),
"time_if_unknown" => Some(crate::core::built_ins_for_dates::time_if_unknown),
"datetime_if_unknown" => Some(crate::core::built_ins_for_dates::datetime_if_unknown),
"string" => Some(crate::core::built_ins_for_multiple_types::string),
"c" => Some(crate::core::built_ins_for_multiple_types::c),
"cn" => Some(crate::core::built_ins_for_multiple_types::cn),
"is_collection_ex" => Some(crate::core::built_ins_for_multiple_types::is_collection_ex),
"is_date_only" => Some(crate::core::built_ins_for_multiple_types::is_date_only),
"is_time" => Some(crate::core::built_ins_for_multiple_types::is_time),
"is_datetime" => Some(crate::core::built_ins_for_multiple_types::is_datetime),
"is_unknown_date_like" => {
Some(crate::core::built_ins_for_multiple_types::is_unknown_date_like)
}
"namespace" => Some(crate::core::built_ins_for_multiple_types::namespace),
"absolute_template_name" => {
Some(crate::core::built_ins_for_multiple_types::absolute_template_name)
}
"api" => Some(crate::core::built_ins_for_multiple_types::api),
"markup_string" => Some(crate::core::built_ins_for_markup_outputs::markup_string),
"then" => Some(crate::core::built_ins_with_lazy_conditionals::then),
"switch" => Some(crate::core::built_ins_with_lazy_conditionals::switch),
"item_cycle" => Some(crate::core::built_ins_for_loop_variables::item_cycle),
"item_parity" => Some(crate::core::built_ins_for_loop_variables::item_parity),
"item_parity_cap" => Some(crate::core::built_ins_for_loop_variables::item_parity_cap),
"blank_to_null" => Some(crate::core::built_ins_for_existence_handling::blank_to_null),
"empty_to_null" => Some(crate::core::built_ins_for_existence_handling::empty_to_null),
"trim_to_null" => Some(crate::core::built_ins_for_existence_handling::trim_to_null),
"with_args" => Some(crate::core::built_ins_for_callables::with_args),
"with_args_last" => Some(crate::core::built_ins_for_callables::with_args_last),
"children" => Some(crate::core::built_ins_for_nodes::children),
"parent" => Some(crate::core::built_ins_for_nodes::parent),
"root" => Some(crate::core::built_ins_for_nodes::root),
"ancestors" => Some(crate::core::built_ins_for_nodes::ancestors),
"node_name" => Some(crate::core::built_ins_for_nodes::node_name),
"node_type" => Some(crate::core::built_ins_for_nodes::node_type),
"node_namespace" => Some(crate::core::built_ins_for_nodes::node_namespace),
"next_sibling" => Some(crate::core::built_ins_for_nodes::next_sibling),
"previous_sibling" => Some(crate::core::built_ins_for_nodes::previous_sibling),
_ => None,
}
}