Skip to content

Commit 23475ed

Browse files
Better push!
1 parent 1f2be9a commit 23475ed

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/traces.jl

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -347,16 +347,28 @@ Base.size(t::Traces) = (mapreduce(length, min, t.traces),)
347347
for f in (:push!, :pushfirst!)
348348
@eval function Base.$f(ts::Traces, xs::NamedTuple)
349349
for (k, v) in pairs(xs)
350-
t = ts.traces[ts.inds[k]]
351-
if t isa AbstractTrace
352-
$f(t, v)
353-
else
354-
$f(t, (; k => v))
355-
end
350+
$f(ts, Val(k), v)
356351
end
357352
end
353+
354+
@eval function Base.$f(ts::Traces{names,T}, ::Val{k}, v) where {names,T,k}
355+
$f(ts.traces[ts.inds[k]], Val(k), v)
356+
end
357+
358+
@eval function Base.$f(t::AbstractTrace, ::Val{k}, v) where {k}
359+
$f(t, v)
360+
end
361+
362+
@eval function Base.$f(t::Trace, ::Val{k}, v) where {k}
363+
$f(t, v)
364+
end
365+
366+
@eval function Base.$f(ts::MultiplexTraces, ::Val{k}, v) where {k}
367+
$f(ts, (; k => v))
368+
end
358369
end
359370

371+
360372
for f in (:append!, :prepend!)
361373
@eval function Base.$f(ts::Traces, xs::Traces)
362374
for k in keys(xs)

0 commit comments

Comments
 (0)