如何设置 clap PathBuf 参数的默认值?它甚至可行吗?我不断地从一个错误跳到另一个错误。
当我尝试以“结构”方式进行操作时:
use std::{env, path::PathBuf};
use clap::{Parser, Args};
fn get_default_log_path() -> PathBuf {
let mut path = env::current_exe().unwrap();
path.pop();
path.push("log/debug.log");
path
}
#[derive(Parser, Debug)]
struct Cli {
#[arg(default_value_t=get_default_log_path())]
log_path: PathBuf
}
fn main() {
let args = Cli::parse();
println!("{:?}", args);
}
Run Code Online (Sandbox Code Playgroud)
我得到:std::path::PathBuf doesn't implement std::fmt::Display...
当我用字符串尝试时:
#[arg(default_value = get_default_log_path().as_os_str())]
log_path: PathBuf
Run Code Online (Sandbox Code Playgroud)
我得到:temporary value dropped while borrowed
如果我对其执行 .to_owned() ,它会输出:the trait bound clap::builder::OsStr: From<OsString> is not satisfied
这可能吗还是我做错了什么?我知道它可以在主函数中完成Option<PathBuf>并处理它。但这可以这样完成吗?
如何仅在深色模式下使用 sass 更改 Bootstrap 5.X 中的主题颜色(主要、次要等)?我知道如何在浅色和深色主题模式下更改主色:
自定义.scss
... snip ...
@import "../bootstrap/scss/functions";
$primary: #0e548c;
@import "../bootstrap/scss/variables";
... snip ...
Run Code Online (Sandbox Code Playgroud)
但是如何将 $primary 颜色更改为在黑暗模式下更亮一点呢?例如:#0062cc
在当前文档(variables_dark.scss)中,我只找到了变量:
我知道如何更改这些变量值,但不知道如何分配不存在的变量值(没有原色黑暗)。
添加:
@include color-mode(dark) {
$primary: #0062cc;
}
Run Code Online (Sandbox Code Playgroud)
之后@import "../bootstrap/scss/root";也不起作用..