DenkiYagi/hxnodejs

ところどころenumを使ったほうがよさそうな箇所がある

Closed this issue · 2 comments

@:enum abstract で纏めれそうだけどどうすればいいのか分からない箇所がいくつかあります.

JavaScript側で定義されている定数を

static var SomeConstVar(default, null): Int;

と宣言していて,これをenumのフィールドの値に使いたい場合はどうすればいいですか?
単に

@:enum abstract Foo(Int) from Int to Int {
    var a = SomeConstVar;
}

などとすると SomeConstVar はコンパイラから見ると定数ではないのでコンパイラに怒られてしまいます.

このあたりのissueが関係していそうな気がしました。
HaxeFoundation/haxe#4862

そもそもenum abstractは定数しかうけれないようなのでクラスのメンバ呼ぶのは無理そう...?

padding という変数に渡せる値は crypto.Constants.*_PADDING に制限されていて,さらに文脈によってもっと使えるものが狭くなります.
しかし,ここで enum を使ってその制限を表現するのは難しくて冗長になりそうなので止めておきます.