On Saturday, 17 November 2018 at 21:11:38 UTC, Adam D. Ruppe
wrote:
On Saturday, 17 November 2018 at 17:58:54 UTC, John Chapman
wrote:
Has anyone had a similar need and come up with a solution?
You might be able to just pass it the Calendar type, and then
fetch its parent module and get the ICalendarFactory from there
(assuming they are defined in the same module).
But generally speaking, passing strings to a mixin that refer
to something in another module isn't going to work well thanks
to scoping rules. You are better off passing a symbol of some
sort.
So there is no actual Calendar type. There's an ICalendarFactory
type that creates instances of ICalendar (these types are part of
a third-party API). "Calendar" is just a key users could use
when calling a "makeWith" method that would build the
ICalendar/Factory names, instantiate the factory, call the
appropriate factory method and return the result. There are
thousands of such object/factory pairs in the API. Just trying to
cut out a lot of boilerplate code, but it doesn't seem doable
this way.