Sha256: 3b3547e08f0cb72fa042cde417bbc8760166d11dc0db4812e7a280c93074d2f5
Contents?: true
Size: 1.55 KB
Versions: 11
Compression:
Stored size: 1.55 KB
Contents
use std::path::PathBuf; use crate::RegexSet; /// Trait used to turn [`crate::BindgenOptions`] fields into CLI args. pub(super) trait AsArgs { fn as_args(&self, args: &mut Vec<String>, flag: &str); } /// If the `bool` is `true`, `flag` is pushed into `args`. /// /// be careful about the truth value of the field as some options, like `--no-layout-tests`, are /// actually negations of the fields. impl AsArgs for bool { fn as_args(&self, args: &mut Vec<String>, flag: &str) { if *self { args.push(flag.to_string()); } } } /// Iterate over all the items of the `RegexSet` and push `flag` followed by the item into `args` /// for each item. impl AsArgs for RegexSet { fn as_args(&self, args: &mut Vec<String>, flag: &str) { for item in self.get_items() { args.extend_from_slice(&[flag.to_owned(), item.clone()]); } } } /// If the `Option` is `Some(value)`, push `flag` followed by `value`. impl AsArgs for Option<String> { fn as_args(&self, args: &mut Vec<String>, flag: &str) { if let Some(string) = self { args.extend_from_slice(&[flag.to_owned(), string.clone()]); } } } /// If the `Option` is `Some(path)`, push `flag` followed by the [`std::path::Path::display`] /// representation of `path`. impl AsArgs for Option<PathBuf> { fn as_args(&self, args: &mut Vec<String>, flag: &str) { if let Some(path) = self { args.extend_from_slice(&[ flag.to_owned(), path.display().to_string(), ]); } } }
Version data entries
11 entries across 11 versions & 1 rubygems