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",
],
)