Rust Doc
rust_doc
rust_doc(name, crate, html_after_content, html_before_content, html_in_header, markdown_css, rustc_flags, rustdoc_flags)
Generates code documentation.
Example: Suppose you have the following directory structure for a Rust library crate:
[workspace]/
WORKSPACE
hello_lib/
BUILD
src/
lib.rs
To build rustdoc
documentation for the hello_lib
crate, define a rust_doc
rule that depends on the the hello_lib
rust_library
target:
package(default_visibility = ["//visibility:public"])
load("@rules_rust//rust:defs.bzl", "rust_library", "rust_doc")
rust_library(
name = "hello_lib",
srcs = ["src/lib.rs"],
)
rust_doc(
name = "hello_lib_doc",
crate = ":hello_lib",
)
Running bazel build //hello_lib:hello_lib_doc
will build a zip file containing the documentation for the hello_lib
library crate generated by rustdoc
.
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this target. | Name | required | |
crate | The label of the target to generate code documentation for.rust_doc can generate HTML code documentation for the source files of rust_library or rust_binary targets. | Label | required | |
html_after_content | File to add in <body> , after content. | Label | optional | None |
html_before_content | File to add in <body> , before content. | Label | optional | None |
html_in_header | File to add to <head> . | Label | optional | None |
markdown_css | CSS files to include via <link> in a rendered Markdown file. | List of labels | optional | [] |
rustc_flags | Deprecated: use rustdoc_flags instead | List of strings | optional | [] |
rustdoc_flags | List of flags passed to rustdoc .These strings are subject to Make variable expansion for predefined source/output path variables like $location , $execpath , and $rootpath . This expansion is useful if you wish to pass a generated file of arguments to rustc: @$(location //package:target) . | List of strings | optional | [] |
rust_doc_test
rust_doc_test(name, deps, crate)
Runs Rust documentation tests.
Example:
Suppose you have the following directory structure for a Rust library crate:
[workspace]/
WORKSPACE
hello_lib/
BUILD
src/
lib.rs
To run documentation tests for the hello_lib
crate, define a rust_doc_test
target that depends on the hello_lib
rust_library
target:
package(default_visibility = ["//visibility:public"])
load("@rules_rust//rust:defs.bzl", "rust_library", "rust_doc_test")
rust_library(
name = "hello_lib",
srcs = ["src/lib.rs"],
)
rust_doc_test(
name = "hello_lib_doc_test",
crate = ":hello_lib",
)
Running bazel test //hello_lib:hello_lib_doc_test
will run all documentation tests for the hello_lib
library crate.
ATTRIBUTES
Name | Description | Type | Mandatory | Default |
---|---|---|---|---|
name | A unique name for this target. | Name | required | |
deps | List of other libraries to be linked to this library target. These can be either other rust_library targets or cc_library targets if linking a native library. | List of labels | optional | [] |
crate | The label of the target to generate code documentation for. rust_doc_test can generate HTML code documentation for the source files of rust_library or rust_binary targets. | Label | required |