Haxe Code Cookbook
Haxe programming cookbookMacrosAdd a static field

Add a static field

Reading time: 0.5 minute

Virtually adds this static variable to a class:

 public inline static var STATIC_VAR:Float = 1.5; 

Build macro

 import haxe.macro.Context; import haxe.macro.Expr; class MyMacro {  public static function build():Array<Field> {  // get existing fields from the context from where build() is called  var fields = Context.getBuildFields();    // append a field  fields.push({  name: "STATIC_VAR",  access: [Access.APublic, Access.AStatic, Access.AInline],  kind: FieldType.FVar(macro:Float, macro $v{1.5}),   pos: Context.currentPos(),  });    return fields;  } } 

Usage

 @:build(MyMacro.build()) class Main {  public function new() {  trace(Main.STATIC_VAR); // 1.5;  } } 

Last modified:
Created:
Category:  Macros