rules_rust
rules_rust copied to clipboard
crate_universe: provider wrappers that pre-populate rust_library/binary
Having crate_universe provide crate-specific wrappers for rust_library/rust_binary allows it to already populate the deps, aliases, and could even add Cargo.toml to compile_data. This way users wouldn't need to call all_crate_deps or aliases themselves in the general case.
This sounds like a good idea. I forget who else mentioned it to me but what I understand the request to be is something that allows you to replace:
load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
load("@rules_rust//rust:defs.bzl", "rust_library")
rust_library(
name = "my_lib",
srcs = glob(["**/*.rs"]),
aliases = aliases(),
edition = "2018",
proc_macro_deps = all_crate_deps(proc_macro = True),
deps = all_crate_deps(normal = True),
)
with:
# I'm not proposing `cargo_backed_rust_library`, I'm just bad at names :)
load("@crate_index//:defs.bzl", "cargo_backed_rust_library")
cargo_backed_rust_library(
name = "my_lib",
# All attributes from the example above are automatically
# generated from a `Cargo.toml` file and would match the
# example above.
)
Is this roughly the same thing you're describing?
Yes, precisely!