add sensitive-field directives to config display
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
b1b6dc0479
commit
d59f68a51a
2 changed files with 31 additions and 5 deletions
|
@ -15,7 +15,7 @@ use crate::{
|
|||
|
||||
const UNDOCUMENTED: &str = "# This item is undocumented. Please contribute documentation for it.";
|
||||
|
||||
const HIDDEN: &[&str] = &["default"];
|
||||
const HIDDEN: &[&str] = &["default", "display"];
|
||||
|
||||
#[allow(clippy::needless_pass_by_value)]
|
||||
pub(super) fn example_generator(input: ItemStruct, args: &[Meta]) -> Result<TokenStream> {
|
||||
|
@ -121,10 +121,27 @@ fn generate_example(input: &ItemStruct, args: &[Meta], write: bool) -> Result<To
|
|||
.expect("written to config file");
|
||||
}
|
||||
|
||||
let name = ident.to_string();
|
||||
summary.push(quote! {
|
||||
writeln!(out, "| {} | {:?} |", #name, self.#ident)?;
|
||||
});
|
||||
let display = get_doc_comment_line(field, "display");
|
||||
let display_directive = |key| {
|
||||
display
|
||||
.as_ref()
|
||||
.into_iter()
|
||||
.flat_map(|display| display.split(' '))
|
||||
.any(|directive| directive == key)
|
||||
};
|
||||
|
||||
if !display_directive("hidden") {
|
||||
let value = if display_directive("sensitive") {
|
||||
quote! { "***********" }
|
||||
} else {
|
||||
quote! { format_args!("{:?}", self.#ident) }
|
||||
};
|
||||
|
||||
let name = ident.to_string();
|
||||
summary.push(quote! {
|
||||
writeln!(out, "| {} | {} |", #name, #value)?;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue