1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
pub mod compiler { pub use liquid_compiler::*; } pub mod error { pub use liquid_error::*; } pub mod interpreter { pub use liquid_interpreter::*; } pub mod value { pub use liquid_value::*; } pub mod partials; pub use liquid_compiler::Language; pub use liquid_compiler::TagTokenIter; pub use liquid_compiler::{BlockReflection, ParseBlock, TagBlock}; pub use liquid_compiler::{Filter, FilterParameters, FilterReflection, ParseFilter}; pub use liquid_compiler::{ParseTag, TagReflection}; pub use liquid_derive::{ Display_filter, FilterParameters, FilterReflection, FromFilterParameters, ParseFilter, }; pub use liquid_error::{Error, Result}; pub use liquid_interpreter::Expression; pub use liquid_interpreter::Renderable; pub use liquid_interpreter::Runtime; pub use liquid_interpreter::Template; pub use liquid_value::{object, to_object, Object}; pub use liquid_value::{to_value, value, Value, ValueCow}; pub use liquid_value::{ObjectView, ValueView}; #[allow(unused_macros)] #[macro_export] macro_rules! call_filter { ($filter:expr, $input:expr) => {{ $crate::call_filter!($filter, $input, ) }}; ($filter:expr, $input:expr, $($args:expr),*) => {{ let positional = Box::new(vec![$($crate::Expression::Literal($crate::value!($args))),*].into_iter()); let keyword = Box::new(Vec::new().into_iter()); let args = $crate::compiler::FilterArguments { positional, keyword }; let runtime = $crate::Runtime::default(); let input = $crate::value!($input); $crate::ParseFilter::parse(&$filter, args) .and_then(|filter| $crate::Filter::evaluate(&*filter, &input, &runtime)) }}; }