From b50b6b9f336f3ce7e570e4768acec9198b2d8cb5 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Fri, 26 Aug 2022 16:19:16 +0100 Subject: [PATCH] Add `reflect.get_union_variant` --- core/reflect/reflect.odin | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/reflect/reflect.odin b/core/reflect/reflect.odin index 794f9668a..25d682cb8 100644 --- a/core/reflect/reflect.odin +++ b/core/reflect/reflect.odin @@ -729,6 +729,17 @@ get_union_variant_raw_tag :: proc(a: any) -> i64 { panic("expected a union to reflect.get_union_variant_raw_tag") } +get_union_variant :: proc(a: any) -> any { + if a == nil { + return nil + } + id := union_variant_typeid(a) + if id == nil { + return nil + } + return any{a.data, id} +} + set_union_variant_raw_tag :: proc(a: any, tag: i64) { if a == nil { return }