From e38f5ae14772c088faff6626d9a4aea6632a7025 Mon Sep 17 00:00:00 2001 From: Juraj Kirchheim Date: Thu, 26 Jul 2018 12:55:05 +0200 Subject: [PATCH] Expand metadata API of member. --- src/tink/macro/Member.hx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/tink/macro/Member.hx b/src/tink/macro/Member.hx index 2146a7e..9984471 100644 --- a/src/tink/macro/Member.hx +++ b/src/tink/macro/Member.hx @@ -32,6 +32,7 @@ abstract Member(Field) from Field to Field { } public var name(get, set):String; + public var meta(get, set):Metadata; public var doc(get, set):Null; public var kind(get, set):FieldType; public var pos(get, set):Position; @@ -76,6 +77,11 @@ abstract Member(Field) from Field to Field { } return pos.makeFailure('missing @$name'); } + + public function metaNamed(name) + return + if (this.meta == null) []; + else [for (tag in this.meta) if (tag.name == name) tag]; public inline function asField():Field return this; public function publish() @@ -86,6 +92,12 @@ abstract Member(Field) from Field to Field { this.access.push(APublic); } + inline function get_meta() return switch this.meta { + case null: this.meta = []; + case v: v; + } + inline function set_meta(param) return this.meta = param; + inline function get_name() return this.name; inline function set_name(param) return this.name = param;