Re: BeerConf Mid-December Edition
On Monday, 7 December 2020 at 08:35:35 UTC, Iain Buclaw wrote: Happy Monday everyone, This month, as the last weekend falls on Boxing Day, we'll be signing off the year a week earlier than usual. So one more time for 2020, grab your best-loved beverages and revered D topics, and join us December 19-20th to celebrate all that we've collectively achieved this year, before finally banishing 2020 into history's dustbin (and sanitize it twice for good measure). As always, a link will be posted to the stream on Saturday. Hi all, Just a friendly reminder that this is happening this weekend, see you all there!
Re: Truly algebraic Variant and Nullable
On Wednesday, 16 December 2020 at 15:58:21 UTC, 9il wrote: On Wednesday, 16 December 2020 at 14:54:26 UTC, Oleg B wrote: On Sunday, 15 November 2020 at 04:54:19 UTC, 9il wrote: Truly algebraic Variant and Nullable with an order-independent list of types. Nullable is defined as ``` alias Nullable(T...) = Variant!(typeof(null), T); ``` Variant and Nullable with zero types are allowed. `void` type is supported. Visitors are allowed to return different types. Cyclic referencing between different variant types are supported. More features and API: http://mir-core.libmir.org/mir_algebraic.html Cheers, Ilya The work has been sponsored by Kaleidic Associates and Symmetry Investments. Great library! Have you any plan to separate it from mir-core (to mir-algebraic for example)? Thanks! Maybe, but mir-core is quite small itself and mir.algebraic is the only part that would be extended or updated in the near future. Other parts are quite stable. If there would be a strong reason to split it, we can do it. That are you planing update? It's will be perfect if you add `get` overload for kind type and more work with tags [2] like that: ``` alias TUnion = Algebraic!( TaggedType!(int, "count"), TaggedType!(string, "str") ); auto v = TUnion("hello"); S: final switch (v.kind) { static foreach (i, k; EnumMembers!(k.Kind)) case k: someFunction(v.get!k); // [1] by now v.get!(TUnion.AllowedTypes[i]) break S; } if (v.is_count) // [2] writeln(v.count); ``` or may be I miss this feature in docs?
Re: Truly algebraic Variant and Nullable
On Wednesday, 16 December 2020 at 15:58:21 UTC, 9il wrote: [snip] Thanks! Maybe, but mir-core is quite small itself and mir.algebraic is the only part that would be extended or updated in the near future. Other parts are quite stable. If there would be a strong reason to split it, we can do it. What about making it into a sub-package, as in here [1]? [1] https://github.com/atilaneves/unit-threaded/tree/master/subpackages
Re: Truly algebraic Variant and Nullable
On Wednesday, 16 December 2020 at 14:54:26 UTC, Oleg B wrote: On Sunday, 15 November 2020 at 04:54:19 UTC, 9il wrote: Truly algebraic Variant and Nullable with an order-independent list of types. Nullable is defined as ``` alias Nullable(T...) = Variant!(typeof(null), T); ``` Variant and Nullable with zero types are allowed. `void` type is supported. Visitors are allowed to return different types. Cyclic referencing between different variant types are supported. More features and API: http://mir-core.libmir.org/mir_algebraic.html Cheers, Ilya The work has been sponsored by Kaleidic Associates and Symmetry Investments. Great library! Have you any plan to separate it from mir-core (to mir-algebraic for example)? Thanks! Maybe, but mir-core is quite small itself and mir.algebraic is the only part that would be extended or updated in the near future. Other parts are quite stable. If there would be a strong reason to split it, we can do it.
Re: Truly algebraic Variant and Nullable
On Sunday, 15 November 2020 at 04:54:19 UTC, 9il wrote: Truly algebraic Variant and Nullable with an order-independent list of types. Nullable is defined as ``` alias Nullable(T...) = Variant!(typeof(null), T); ``` Variant and Nullable with zero types are allowed. `void` type is supported. Visitors are allowed to return different types. Cyclic referencing between different variant types are supported. More features and API: http://mir-core.libmir.org/mir_algebraic.html Cheers, Ilya The work has been sponsored by Kaleidic Associates and Symmetry Investments. Great library! Have you any plan to separate it from mir-core (to mir-algebraic for example)?