pub mod array;
pub mod datetime;
pub mod encoding;
pub mod formatting;
pub mod hash;
pub mod kubernetes;
pub mod math;
pub mod object;
pub mod path;
pub mod serialization;
pub mod string;
pub mod traits;
pub mod url;
pub use traits::FilterFunction;
use crate::functions::metadata::FunctionMetadata;
use minijinja::Environment;
pub fn get_all_metadata() -> Vec<&'static FunctionMetadata> {
vec![
&hash::Md5::METADATA,
&hash::Sha1::METADATA,
&hash::Sha256::METADATA,
&hash::Sha512::METADATA,
&encoding::Base64Encode::METADATA,
&encoding::Base64Decode::METADATA,
&encoding::HexEncode::METADATA,
&encoding::HexDecode::METADATA,
&encoding::EscapeHtml::METADATA,
&encoding::EscapeXml::METADATA,
&encoding::EscapeShell::METADATA,
&serialization::ToJson::METADATA,
&serialization::ToYaml::METADATA,
&serialization::ToToml::METADATA,
&serialization::ParseJson::METADATA,
&serialization::ParseYaml::METADATA,
&serialization::ParseToml::METADATA,
&math::Abs::METADATA,
&math::Round::METADATA,
&math::Ceil::METADATA,
&math::Floor::METADATA,
&string::RegexReplace::METADATA,
&string::Substring::METADATA,
&string::Truncate::METADATA,
&string::WordCount::METADATA,
&string::SplitLines::METADATA,
&string::Wrap::METADATA,
&string::Center::METADATA,
&string::StripHtml::METADATA,
&string::StripAnsi::METADATA,
&string::NormalizeWhitespace::METADATA,
&string::Slugify::METADATA,
&string::Indent::METADATA,
&string::Dedent::METADATA,
&string::Quote::METADATA,
&string::EscapeQuotes::METADATA,
&string::ToSnakeCase::METADATA,
&string::ToCamelCase::METADATA,
&string::ToPascalCase::METADATA,
&string::ToKebabCase::METADATA,
&string::PadLeft::METADATA,
&string::PadRight::METADATA,
&string::Repeat::METADATA,
&string::Reverse::METADATA,
&array::ArraySum::METADATA,
&array::ArrayAvg::METADATA,
&array::ArrayMedian::METADATA,
&array::ArrayMin::METADATA,
&array::ArrayMax::METADATA,
&array::ArrayUnique::METADATA,
&array::ArrayFlatten::METADATA,
&datetime::FormatDate::METADATA,
&datetime::GetYear::METADATA,
&datetime::GetMonth::METADATA,
&datetime::GetDay::METADATA,
&datetime::GetHour::METADATA,
&datetime::GetMinute::METADATA,
&datetime::GetSecond::METADATA,
&path::Basename::METADATA,
&path::Dirname::METADATA,
&path::FileExtension::METADATA,
&path::JoinPath::METADATA,
&path::NormalizePath::METADATA,
&url::UrlEncode::METADATA,
&url::UrlDecode::METADATA,
&url::ParseUrl::METADATA,
&object::ObjectKeys::METADATA,
&object::ObjectValues::METADATA,
&object::ObjectFlatten::METADATA,
&kubernetes::K8sLabelSafe::METADATA,
&kubernetes::K8sDnsLabelSafe::METADATA,
&kubernetes::K8sAnnotationSafe::METADATA,
&formatting::Filesizeformat::METADATA,
&formatting::Urlencode::METADATA,
]
}
pub fn register_all(env: &mut Environment) {
hash::Md5::register(env);
hash::Sha1::register(env);
hash::Sha256::register(env);
hash::Sha512::register(env);
encoding::Base64Encode::register(env);
encoding::Base64Decode::register(env);
encoding::HexEncode::register(env);
encoding::HexDecode::register(env);
encoding::EscapeHtml::register(env);
encoding::EscapeXml::register(env);
encoding::EscapeShell::register(env);
serialization::ToJson::register(env);
serialization::ToYaml::register(env);
serialization::ToToml::register(env);
serialization::ParseJson::register(env);
serialization::ParseYaml::register(env);
serialization::ParseToml::register(env);
math::Abs::register(env);
math::Round::register(env);
math::Ceil::register(env);
math::Floor::register(env);
string::RegexReplace::register(env);
string::Substring::register(env);
string::Truncate::register(env);
string::WordCount::register(env);
string::SplitLines::register(env);
string::Wrap::register(env);
string::Center::register(env);
string::StripHtml::register(env);
string::StripAnsi::register(env);
string::NormalizeWhitespace::register(env);
array::ArraySum::register(env);
array::ArrayAvg::register(env);
array::ArrayMedian::register(env);
array::ArrayMin::register(env);
array::ArrayMax::register(env);
array::ArrayUnique::register(env);
array::ArrayFlatten::register(env);
datetime::FormatDate::register(env);
datetime::GetYear::register(env);
datetime::GetMonth::register(env);
datetime::GetDay::register(env);
datetime::GetHour::register(env);
datetime::GetMinute::register(env);
datetime::GetSecond::register(env);
path::Basename::register(env);
path::Dirname::register(env);
path::FileExtension::register(env);
path::JoinPath::register(env);
path::NormalizePath::register(env);
url::UrlEncode::register(env);
url::UrlDecode::register(env);
url::ParseUrl::register(env);
object::ObjectKeys::register(env);
object::ObjectValues::register(env);
object::ObjectFlatten::register(env);
kubernetes::K8sLabelSafe::register(env);
kubernetes::K8sDnsLabelSafe::register(env);
kubernetes::K8sAnnotationSafe::register(env);
formatting::Filesizeformat::register(env);
formatting::Urlencode::register(env);
string::Slugify::register(env);
string::Indent::register(env);
string::Dedent::register(env);
string::Quote::register(env);
string::EscapeQuotes::register(env);
string::ToSnakeCase::register(env);
string::ToCamelCase::register(env);
string::ToPascalCase::register(env);
string::ToKebabCase::register(env);
string::PadLeft::register(env);
string::PadRight::register(env);
string::Repeat::register(env);
string::Reverse::register(env);
}