2020年12月18日のブックマーク (3件)

  • スキーマはもう全部CDDLでいいんじゃないかな - OPTiM TECH BLOG

    こんにちは、OPTiM TECH BLOG Advent Calendar 2020 12/10の記事をR&Dチームの齋藤(@aznhe21)からお送りします。 アドベントカレンダーはクリスマスまでを数えるカレンダーということですが、個人的にはクリスマスよりもクリスマスイブの方が楽しみです。 なぜならEDF:WBが発売されるのと同時に、我が家にPS5が届く予定の日だからです。 さて、スキーマフルなデータ形式を調べる中で見つけたCDDL1(CBOR2のためのデータ定義言語)がとても表現力が高いのに全然情報が無かったのでまとめてみました。 はじめに 基型 構文解説 構文解説 コメント 型定義 整数リテラル 小数リテラル 文字列リテラル バイト列リテラル 裏話 選択肢 範囲 グループの選択肢化 発生指示子 グループ 細かい話 配列 マップ アンラッピング ジェネリクス その他の機能 ツール ラ

    スキーマはもう全部CDDLでいいんじゃないかな - OPTiM TECH BLOG
    masinc000
    masinc000 2020/12/18
  • Rustのconst fnって何? | κeenのHappy Hacκing Blog

    error[E0010]: allocations are not allowed in constants --> const.rs:1:23 | 1 | const VEC: Vec<i32> = vec![1]; | ^^^^^^^ allocation not allowed in constants | = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) この制限された static や const の右辺に書くときの文脈を const文脈 と呼びます。 この他には配列初期化構文 [init; size] の size の部分やその型 [Type; Size] の Size 、あとはC-like列挙型の判別子の設定に書ける式も

    Rustのconst fnって何? | κeenのHappy Hacκing Blog
    masinc000
    masinc000 2020/12/18
  • lazy_static はもう古い!? once_cell を使おう

    この記事を 3 行でまとめると Rust のグローバル変数には多くの制限があった 制限を撤廃し、容易にグローバル変数を使うためのクレートが lazy_static lazy_static の代替となる once_cell が登場 Rust のグローバル変数には多くの制限があった Rust にはグローバル変数がありますが、 定数でしか初期化できない 変更可能にすると unsafe を使用する必要がある 変更不可にするとスレッドセーフな型しか使用できない という制限があり、非常に使いづらい物となっていました。 例えば、一度だけ巨大なテキストを読み込んでグロバール変数に格納したいとします。 しかし、次のように書くと unsafe 無しではグローバル変数を変更できないため、コンパイルエラーとなってしまいます。 static mut LARGE_TEXT : String = String::new

    lazy_static はもう古い!? once_cell を使おう
    masinc000
    masinc000 2020/12/18