|
module Delegates
|
|
|
|
export Delegator, Delegate
|
|
|
|
struct Delegator{T}
|
|
delegate::T
|
|
end
|
|
|
|
struct Delegate end
|
|
|
|
operation(x::Delegator) = thing(x.delegate)
|
|
thing(::Any) = "default implementation"
|
|
thing(::Delegate) = "delegate implementation"
|
|
|
|
end # module Delegates
|