ブックマーク / zenn.dev/masinc (3)

  • JSON や YAML ファイルのマージをする

    JSON や YAML でマージをする方法を調べたところ、 jq や yq を利用することで手軽に行なうことができます。 記事では jq や yq の基的に利用方法については、知っているものとして記述します。 jq を利用したマージ jq は入出力ともに JSON のみに対応しています。

    JSON や YAML ファイルのマージをする
    masinc000
    masinc000 2022/09/20
    書いた。
  • RustのSerdeクレートで共用体を扱う

    Rust でこの JSON ファイルをシリアライズ/デシリアライズするにあたって x の値は文字列型又は数値型であることを表現する方法を調べました。 方法 1: Value 型を使う それぞれのフォーマットのクレートには以下のような型が定義されています。 serde_json::Value serde_yml::Value toml::Value これはいわゆる Any 型であり、それぞれのデータで表現できる型をいずれでも格納できる型となっています。 fn main() -> Result<(), Box<dyn std::error::Error>> { let json = r#" [ { "x": 100 }, { "x": "abc" } ] "#; // ここでは、serde_yaml::Valueやtoml::Value型でも表現することができる。 let v: serde_j

    RustのSerdeクレートで共用体を扱う
    masinc000
    masinc000 2021/03/28
    書いた
  • Rustのdbg!マクロについて

    dbg! マクロとは Rust1.32.0 より stable に追加されたマクロです。 その名の通り、デバッグに便利なマクロです。 式と結果が標準エラーに出力されます。 println!などのマクロと違ってそのまま式が出力されます。出力後に値を返してくれるのが大きな違いです。 利用方法 dbg!マクロにて出力する値はDebugトレイトを実装している必要があります。 #[allow(dead_code)] struct S(usize); fn main() { dbg!("rust"); // &strはDebugトレイトを実装している。 // dbg!(S(0)); // SはDebugトレイトを実装していないためエラー }

    Rustのdbg!マクロについて
    masinc000
    masinc000 2021/02/05
    書いた
  • 1