File tree Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Original file line number Diff line number Diff line change 4646# ###############################################################################
4747getfields (x:: Tuple ) = x
4848getfields (x:: NamedTuple ) = x
49- @generated function getfields (obj)
50- fnames = fieldnames (obj)
51- fvals = map (fnames) do fname
52- Expr (:call , :getfield , :obj , QuoteNode (fname))
53- end
54- :(NamedTuple {$fnames} (($ (fvals... ),)))
55- end
5649getproperties (o:: NamedTuple ) = o
5750getproperties (o:: Tuple ) = o
5851if VERSION >= v " 1.7"
5952 function getproperties (obj)
6053 fnames = propertynames (obj)
6154 NamedTuple {fnames} (getproperty .(Ref (obj), fnames))
6255 end
56+ function getfields (obj:: T ) where {T}
57+ fnames = fieldnames (T)
58+ NamedTuple {fnames} (getfield .(Ref (obj), fnames))
59+ end
6360else
61+ @generated function getfields (obj)
62+ fnames = fieldnames (obj)
63+ fvals = map (fnames) do fname
64+ Expr (:call , :getfield , :obj , QuoteNode (fname))
65+ end
66+ :(NamedTuple {$fnames} (($ (fvals... ),)))
67+ end
6468 function getproperties (obj)
6569 check_properties_are_fields (obj)
6670 getfields (obj)
You can’t perform that action at this time.
0 commit comments