実装済み

Enum#

Enum は候補が定義された独立した Value 型です。候補付き Integer ではありません。 ソケット自体が、ドメイン ID と全候補の固定 ID・整数コードを保持します。

fn quality() -> Enum<"Quality", "draft"=0, "preview"=7, "final"=20> {
  return literal(Enum<"Quality", "draft"=0, "preview"=7, "final"=20>, "final");
}

Enum Input の Enum Definition 欄で候補を定義し、Value 欄で選択します。 Node と Code は同じ型と値を保存します。型定義の記述順やメニュー表示順は 値を変えません。表示ラベルや翻訳は接続先を決める根拠にしません。

接続・変換 規則
同じ Enum 定義 直接接続
別の Enum 定義 全候補の対応を指定した Enum Map
Enum → Integer enum_code(value) で明示変換
Enum → String enum_id(value) で固定メンバー ID を取得
Integer → Enum enum_from_code(code, exemplar)。候補にないコードはエラー
String → Enum enum_from_id(id, exemplar)。候補にない ID はエラー

exemplar は戻り値の Enum 型を指定する値です。現在の選択は代替値ではありません。 Enum に加減算・大小比較はありません。equal と select は同じ定義を要求します。

AE の Dropdown を Alt+F で取り込むと、取得元と取得時の候補を固定した Enum に なります。別の Enum ソケット(例: Merge の Mode)へドロップすると Enum Map が 開きます。全行の対応を選んで作成してください。作成した Map は通常の CNL 関数 なので、中へ入って検査・編集でき、Code にも書き出されます。対応を省略して 位置順や似た名前で自動選択することはありません。

AE はメニュー項目ごとの安定 ID を公開しないため、項目の追加・削除・並べ替え後は 再取得し、対応を見直します。Layer Control は Enum とは別のレイヤー参照です。

1型あたり1..512候補、候補IDとドメインIDは各1KiBまでのUTF-8、コードは一意の0..2147483647です。 現在の実行経路はuniform Valueです。Enum要素のField/Gridストレージは未対応です。 AEのネイティブ制御へ公開する場合は、全候補コードが0..16777216に収まる必要があります。 上限を超える型もCNLとパネル内の選択では正確な項目IDを保ちます。 Enum Definition欄は文字編集の1MiB上限を超える定義をCNLで編集するよう案内します。

関連: 型形式と型定義、String、パラメータ。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。