Skip to content

Update wrapper.jl - overload Base.merge for Wrapper type#47

Open
uniment wants to merge 1 commit into
lbilli:masterfrom
uniment:patch-1
Open

Update wrapper.jl - overload Base.merge for Wrapper type#47
uniment wants to merge 1 commit into
lbilli:masterfrom
uniment:patch-1

Conversation

@uniment

@uniment uniment commented Jan 9, 2024

Copy link
Copy Markdown

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

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
```
@lbilli

lbilli commented Jan 9, 2024

Copy link
Copy Markdown
Owner

Thanks for the interest.
I'd like to point out that it's already possible to build or modify a Wrapper incrementally:

d, sw = simple_wrap()
function mycallback(a, b, c, d, e, f, g, h) 
    #= =# 
end

sw.tickByTickAllLast = mycallback

or, starting from scratch:

w = Jib.Wrapper()

w.tickPrice = function(a,b,c,d)
                #= =#
              end

@uniment

uniment commented Jan 10, 2024

Copy link
Copy Markdown
Author

Good point. This idea is rather more useful for constructing a type-stable NamedTuple wrapper instead:

d, sw = simple_wrap()
w = (; sw..., 
    updateMktDepth = function(args...) #= =# end,
    tickByTickAllLast = function(args...) #= =# end
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants