From 672ed716e0955d255783a0a35bc86f377d0b5c1b Mon Sep 17 00:00:00 2001 From: Zeke <68589942+uniment@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:36:21 -0800 Subject: [PATCH] Update wrapper.jl - overload Base.merge for Wrapper type Allows a Wrapper to be splatted, so that only a small handful of new functions need be defined, enabling patterns like this: ``` d, sw = simple_wrap() function tickByTickAllLast(a, b, c, d, e, f, g, h) #= =# end w = Wrapper(; sw..., tickByTickAllLast) # `w` is exactly like `sw` but with a custom `tickByTickAllLast` callback ``` --- src/wrapper.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wrapper.jl b/src/wrapper.jl index cafaa18..0e8a253 100644 --- a/src/wrapper.jl +++ b/src/wrapper.jl @@ -117,7 +117,7 @@ Base.getproperty(w::Wrapper, name::Symbol) = get(getfield(w, :cb), name) do Base.propertynames(w::Wrapper) = getfield(w, :cb) |> keys |> collect - +Base.merge(nt::NamedTuple, w::Wrapper) = let pns=propertynames(w); merge(nt, NamedTuple{(pns...,)}(getproperty.(Ref(w), pns))) end function Base.setproperty!(w::Wrapper, name::Symbol, f)