@@ -26,7 +26,9 @@ include("coord.jl")
2626include(" workload.jl" )
2727
2828# Interface
29- name(v) = @getfield v :name getmeta(v, " name" , " " )
29+ name(v) = @getfield v :name meta_name(meta(v))
30+ meta_name(nt:: NamedTuple ) = get(nt, :name, " " )
31+ meta_name(meta) = get(meta, " name" , " " )
3032
3133"""
3234 getmeta(x)
@@ -41,16 +43,19 @@ getmeta(x) = @getfield x (:meta, :metadata) NoMetadata()
4143
4244Get metadata value associated with object `x` for key `key`, or `default` if `key` is not present.
4345"""
44- getmeta(x, key, default= nothing ) = get(meta(x), key, default)
46+ getmeta(x, key, default = nothing ) = get(meta(x), key, default)
4547
4648meta(x) = getmeta(x) # not exported (to be removed)
4749
48- units(v) = @get(v, " units" , nothing )
50+ function units(v)
51+ m = getmeta(v)
52+ return m isa NamedTuple ? get(m, :units, nothing ) : get(m, " units" , nothing )
53+ end
4954times(v) = @getfield v (:times, :time)
5055
5156function unit(v)
5257 us = units(v)
53- allequal(us) ? only(us) : error(" Units are not equal: $us " )
58+ return allequal(us) ? only(us) : error(" Units are not equal: $us " )
5459end
5560
5661"""
@@ -88,8 +93,8 @@ Update metadata for object `x` for key `key` to have value `value` and return `x
8893function setmeta end
8994
9095function setmeta(x, args:: Pair... ; kw... )
91- return @set x. metadata= _merge(meta(x), Dict(args... ), kw)
96+ return @set x. metadata = _merge(meta(x), Dict(args... ), kw)
9297end
93- setmeta(x, dict:: AbstractDict ) = @set x. metadata= _merge(meta(x), dict)
98+ setmeta(x, dict:: AbstractDict ) = @set x. metadata = _merge(meta(x), dict)
9499
95- end
100+ end
0 commit comments