This guide documents important internal coding conventions used in rextendr.
rextendr uses the cli package to format messages to the user, which are generally then routed through rlang::inform()
. Most UI will happen through ui_*()
functions:
| function | purpose |
|----------|---------------------------------------------------------------------------------------------------------------|
| cli::cli_alert_success()
| communicate that rextendr has done something successfully, such as wrote a file |
| cli::cli_alert_info()
| provide extra information to the user |
| cli::cli_alert_warning()
| warn the user about something (note: this is still condition of class message
, not warning
) |
| cli::cli_ul()
| indicate that the user has something to do |
| cli::cli_alert_danger()
| tell the user that something has gone wrong (note: this still is a condition of class message
, not error
) |
{cli}
supports glue-based interpolation and inline text formatting.
Pass all errors via cli::cli_abort()
. Ensure that the class rextendr_error
is specified. You can also add details by providing a named vector. See ?cli::cli_abort()
and ?cli::cli_bulelts()
for the message
argument.
cli::cli_abort(
c(
"Unable to register the extendr module.",
"x" = "Could not find file {.file src/entrypoint.c}.",
"*" = "Are you sure this package is using extendr Rust code?"
),
class = "rextendr_error"
)
{cli}
is used to verbosely inform the user. The user should be able to optionally silence functions that have particularly verbose output by setting quiet
argument to TRUE
—see ?rust_source
for example.
Silencing cli
output should be done with the helper local_quiet_cli(quiet)
. When quiet = TRUE
all, cli
output is suppressed.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.