sbp2json 6.5.1

Rust native implementation of SBP (Swift Binary Protocol) to JSON conversion tools
Documentation
load("@rules_rs//rs:cargo_build_script.bzl", "cargo_build_script")
load("@rules_rs//rs:rust_binary.bzl", "rust_binary")
load("@rules_rs//rs:rust_library.bzl", "rust_library")
load("@rules_rs//rs:rust_test.bzl", "rust_test")

rust_library(
    name = "converters",
    srcs = ["src/lib.rs"],
    crate_root = "src/lib.rs",
    edition = "2024",
    visibility = ["//visibility:public"],
    deps = [
        "//rust/sbp",
        "@crates//:clap",
        "@crates//:dencode",
        "@crates//:env_logger",
        "@crates//:mimalloc",
        "@crates//:serde_json",
    ],
)

cargo_build_script(
    name = "build_script",
    srcs = ["build.rs"],
    build_script_env = {
        "VERGEN_GIT_DESCRIBE": "0.0.0-bazel-no-version",
    },
    edition = "2024",
    deps = [
        "@crates//:vergen-gitcl",
    ],
)

rust_binary(
    name = "sbp2json",
    srcs = ["src/bin/sbp2json.rs"],
    edition = "2024",
    visibility = ["//visibility:public"],
    deps = [
        ":build_script",
        ":converters",
        "//rust/sbp",
        "@crates//:clap",
        "@crates//:dencode",
        "@crates//:env_logger",
        "@crates//:mimalloc",
        "@crates//:serde_json",
    ],
)

rust_binary(
    name = "json2sbp",
    srcs = ["src/bin/json2sbp.rs"],
    edition = "2024",
    visibility = ["//visibility:public"],
    deps = [
        ":build_script",
        ":converters",
        "//rust/sbp",
        "@crates//:clap",
        "@crates//:dencode",
        "@crates//:env_logger",
        "@crates//:mimalloc",
        "@crates//:serde_json",
    ],
)

rust_binary(
    name = "json2json",
    srcs = ["src/bin/json2json.rs"],
    edition = "2024",
    visibility = ["//visibility:public"],
    deps = [
        ":build_script",
        ":converters",
        "//rust/sbp",
        "@crates//:clap",
        "@crates//:dencode",
        "@crates//:env_logger",
        "@crates//:mimalloc",
        "@crates//:serde_json",
    ],
)

rust_test(
    name = "converters_test",
    crate = ":converters",
    deps = [
        "@crates//:assert-json-diff",
        "@crates//:assert_cmd",
        "@crates//:hex",
        "@crates//:serde_json",
        "@crates//:sha2",
    ],
)