formatjs_icu_messageformat_parser 0.2.6

ICU MessageFormat parser implementation in Rust
Documentation
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")
load("//tools:index.bzl", "generate_src_file")

exports_files(
    [
        "Cargo.toml",
        "date_time_pattern_generator.rs",
        "error.rs",
        "lib.rs",
        "manipulator.rs",
        "parser.rs",
        "printer.rs",
        "regex_generated.rs",
        "time_data_generated.rs",
        "types.rs",
    ],
    visibility = ["//visibility:public"],
)

generate_src_file(
    name = "time-data",
    src = "time_data_generated.rs",
    tool = "//packages/icu-messageformat-parser/tools:time_data_gen",
)

generate_src_file(
    name = "regex",
    src = "regex_generated.rs",
    tool = "//packages/icu-messageformat-parser/tools:regex_gen",
)

rust_library(
    name = "icu_messageformat_parser",
    srcs = [
        "date_time_pattern_generator.rs",
        "error.rs",
        "lib.rs",
        "manipulator.rs",
        "parser.rs",
        "printer.rs",
        "regex_generated.rs",
        "time_data_generated.rs",
        "types.rs",
    ],
    crate_name = "formatjs_icu_messageformat_parser",
    visibility = ["//visibility:public"],
    deps = [
        "//crates/icu_skeleton_parser",
        "@crates//:icu",
        "@crates//:indexmap",
        "@crates//:once_cell",
        "@crates//:regex",
        "@crates//:serde",
    ],
)

rust_test(
    name = "icu_messageformat_parser_test",
    crate = ":icu_messageformat_parser",
)

rust_binary(
    name = "parser_bench",
    srcs = ["benches/parser_bench.rs"],
    crate_name = "parser_bench",
    deps = [
        ":icu_messageformat_parser",
        "@crates//:criterion",
    ],
)