diff --git a/Project.toml b/Project.toml index 97b8bb1..8404fd5 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "UnixTimes" uuid = "ab1a18e7-b408-4913-896c-624bb82ed7f4" authors = ["Christian Rorvik "] -version = "1.6.0" +version = "1.7.0" [deps] Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" @@ -10,9 +10,11 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" Observables = "510215fc-4207-5dde-b226-833fc4488ee2" TimeZones = "f269a46b-ccf7-5d73-abea-4c690281aa53" +StructTypes = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" [extensions] UnixTimesMakieExt = ["Makie", "Observables"] +UnixTimesStructTypesExt = "StructTypes" UnixTimesTimeZonesExt = "TimeZones" [compat] diff --git a/ext/UnixTimesStructTypesExt.jl b/ext/UnixTimesStructTypesExt.jl new file mode 100644 index 0000000..7321603 --- /dev/null +++ b/ext/UnixTimesStructTypesExt.jl @@ -0,0 +1,13 @@ +module UnixTimesStructTypesExt + +using Dates +using StructTypes +using UnixTimes + +StructTypes.StructType(::Type{UnixTime}) = StructTypes.CustomStruct() +StructTypes.lower(x::UnixTime) = Dates.value(x) +StructTypes.lowertype(::Type{UnixTime}) = Int64 +StructTypes.construct(::Type{UnixTime}, x::Int64) = + UnixTime(Dates.UTInstant(Dates.Nanosecond(x))) + +end