11# __ Jinja2Value
22
3+ using Dates
4+
35abstract type Jinja2ValueType end
46
5- struct Jinja2StringType <: Jinja2ValueType end
6- struct Jinja2IntegerType <: Jinja2ValueType end
7- struct Jinja2BoolType <: Jinja2ValueType end
8- struct Jinja2DoubleType <: Jinja2ValueType end
9- struct Jinja2ListType <: Jinja2ValueType end
10- struct Jinja2MapType <: Jinja2ValueType end
11- struct Jinja2EmptyType <: Jinja2ValueType end
12- struct Jinja2CustomType <: Jinja2ValueType end
7+ struct Jinja2StringType <: Jinja2ValueType end
8+ struct Jinja2IntegerType <: Jinja2ValueType end
9+ struct Jinja2BoolType <: Jinja2ValueType end
10+ struct Jinja2DoubleType <: Jinja2ValueType end
11+ struct Jinja2ListType <: Jinja2ValueType end
12+ struct Jinja2MapType <: Jinja2ValueType end
13+ struct Jinja2EmptyType <: Jinja2ValueType end
14+ struct Jinja2DateTimeType <: Jinja2ValueType end
15+ struct Jinja2CustomType <: Jinja2ValueType end
1316
1417@inline Jinja2ValueType (:: T ) where {T} = Jinja2ValueType (T)
1518@inline Jinja2ValueType (:: Type{<:AbstractString} ) = Jinja2StringType ()
@@ -25,6 +28,7 @@ struct Jinja2CustomType <: Jinja2ValueType end
2528@inline Jinja2ValueType (:: Type{<:AbstractDict} ) = Jinja2MapType ()
2629@inline Jinja2ValueType (:: Type{<:NamedTuple} ) = Jinja2MapType ()
2730@inline Jinja2ValueType (:: Type{<:Enum} ) = Jinja2StringType ()
31+ @inline Jinja2ValueType (:: Type{<:TimeType} ) = Jinja2DateTimeType ()
2832@inline Jinja2ValueType (:: Type{<:Any} ) = Jinja2CustomType ()
2933
3034@inline function check_value_null (handle)
7579 return check_value_null (handle)
7680end
7781
82+ @inline function jinja_value (:: Jinja2DateTimeType , x:: TimeType )
83+ return jinja_value (Jinja2StringType (), string (x))
84+ end
85+
7886@inline function jinja_value (:: Jinja2EmptyType , :: Any )
7987 handle = jinja2cpp_value_create_empty ()
8088 return check_value_null (handle)
0 commit comments