| # This package contains Rust protobuf runtime implementation built on top of the C++ backend. | |
| load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") | |
| rust_library( | |
| name = "cpp", | |
| srcs = ["cpp.rs"], | |
| visibility = [ | |
| "//src/google/protobuf:__subpackages__", | |
| "//rust:__subpackages__", | |
| ], | |
| ) | |
| rust_test( | |
| name = "cpp_test", | |
| crate = ":cpp", | |
| tags = [ | |
| # TODO(b/270274576): Enable testing on arm once we have a Rust Arm toolchain. | |
| "not_build:arm", | |
| # TODO(b/243126140): Enable tsan once we support sanitizers with Rust. | |
| "notsan", | |
| # TODO(b/243126140): Enable msan once we support sanitizers with Rust. | |
| "nomsan", | |
| ], | |
| ) | |
| cc_library( | |
| name = "cpp_api", | |
| hdrs = ["cpp_api.h"], | |
| visibility = [ | |
| "//src/google/protobuf:__subpackages__", | |
| "//rust:__subpackages__", | |
| ], | |
| deps = [ | |
| ":rust_alloc_for_cpp_api", | |
| "//src/google/protobuf", | |
| ], | |
| ) | |
| rust_library( | |
| name = "rust_alloc_for_cpp_api", | |
| srcs = ["rust_alloc_for_cpp_api.rs"], | |
| ) |