Fix CLI docs for traces.
This commit is contained in:
parent
59c784778e
commit
3d131a5d09
|
@ -22,17 +22,22 @@ pub struct Args {
|
||||||
#[clap(short, long)]
|
#[clap(short, long)]
|
||||||
uplc: bool,
|
uplc: bool,
|
||||||
|
|
||||||
/// Do not remove traces when generating code.
|
/// Filter traces to be included in the generated program(s).
|
||||||
#[clap(short, long, value_parser=keep_traces_parser(), default_missing_value="all")]
|
/// - user-defined: only consider traces that you've explicitly defined (either through the
|
||||||
keep_traces: Option<fn(TraceLevel) -> Tracing>,
|
/// 'trace' keyword of via the trace-if-false ('?') operator.
|
||||||
|
/// - compiler-generated: only included internal traces generated by the Aiken compiler, for
|
||||||
|
/// example in usage of 'expect'.
|
||||||
|
/// - all: include both user-defined and compiler-generated traces.
|
||||||
|
/// [optional] [default: all]
|
||||||
|
#[clap(short, long, value_parser=filter_traces_parser(), default_missing_value="all", verbatim_doc_comment)]
|
||||||
|
filter_traces: Option<fn(TraceLevel) -> Tracing>,
|
||||||
|
|
||||||
/// Choose the level of tracing
|
/// Choose the verbosity level of traces:
|
||||||
/// - silent: disable traces altogether
|
/// - silent: disable traces altogether
|
||||||
/// - compact: only culprit line numbers are shown on failures
|
/// - compact: only culprit line numbers are shown on failures
|
||||||
/// - verbose: enable full verbose traces as provided by the user or the compiler
|
/// - verbose: enable full verbose traces as provided by the user or the compiler
|
||||||
///
|
/// [optional]
|
||||||
///
|
#[clap(short, long, value_parser=trace_level_parser(), default_value_t=TraceLevel::Silent, verbatim_doc_comment)]
|
||||||
#[clap(short, long, value_parser=trace_level_parser(), default_value_t=TraceLevel::Verbose, verbatim_doc_comment)]
|
|
||||||
trace_level: TraceLevel,
|
trace_level: TraceLevel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +47,7 @@ pub fn exec(
|
||||||
deny,
|
deny,
|
||||||
watch,
|
watch,
|
||||||
uplc,
|
uplc,
|
||||||
keep_traces,
|
filter_traces,
|
||||||
trace_level,
|
trace_level,
|
||||||
}: Args,
|
}: Args,
|
||||||
) -> miette::Result<()> {
|
) -> miette::Result<()> {
|
||||||
|
@ -50,8 +55,8 @@ pub fn exec(
|
||||||
watch_project(directory.as_deref(), watch::default_filter, 500, |p| {
|
watch_project(directory.as_deref(), watch::default_filter, 500, |p| {
|
||||||
p.build(
|
p.build(
|
||||||
uplc,
|
uplc,
|
||||||
match keep_traces {
|
match filter_traces {
|
||||||
Some(keep_traces) => keep_traces(trace_level),
|
Some(filter_traces) => filter_traces(trace_level),
|
||||||
None => Tracing::All(trace_level),
|
None => Tracing::All(trace_level),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -60,8 +65,8 @@ pub fn exec(
|
||||||
with_project(directory.as_deref(), deny, |p| {
|
with_project(directory.as_deref(), deny, |p| {
|
||||||
p.build(
|
p.build(
|
||||||
uplc,
|
uplc,
|
||||||
match keep_traces {
|
match filter_traces {
|
||||||
Some(keep_traces) => keep_traces(trace_level),
|
Some(filter_traces) => filter_traces(trace_level),
|
||||||
None => Tracing::All(trace_level),
|
None => Tracing::All(trace_level),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -72,7 +77,7 @@ pub fn exec(
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::type_complexity)]
|
#[allow(clippy::type_complexity)]
|
||||||
pub fn keep_traces_parser(
|
pub fn filter_traces_parser(
|
||||||
) -> MapValueParser<PossibleValuesParser, fn(String) -> fn(TraceLevel) -> Tracing> {
|
) -> MapValueParser<PossibleValuesParser, fn(String) -> fn(TraceLevel) -> Tracing> {
|
||||||
PossibleValuesParser::new(["user-defined", "compiler-generated", "all"]).map(
|
PossibleValuesParser::new(["user-defined", "compiler-generated", "all"]).map(
|
||||||
|s: String| match s.as_str() {
|
|s: String| match s.as_str() {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use super::build::{keep_traces_parser, trace_level_parser};
|
use super::build::{filter_traces_parser, trace_level_parser};
|
||||||
use aiken_lang::ast::{TraceLevel, Tracing};
|
use aiken_lang::ast::{TraceLevel, Tracing};
|
||||||
use aiken_project::watch::{self, watch_project, with_project};
|
use aiken_project::watch::{self, watch_project, with_project};
|
||||||
use std::{path::PathBuf, process};
|
use std::{path::PathBuf, process};
|
||||||
|
@ -36,11 +36,17 @@ pub struct Args {
|
||||||
#[clap(short, long)]
|
#[clap(short, long)]
|
||||||
exact_match: bool,
|
exact_match: bool,
|
||||||
|
|
||||||
/// Do not remove traces when generating code
|
/// Filter traces to be considered during testing:
|
||||||
#[clap(short, long, value_parser=keep_traces_parser(), default_missing_value="all")]
|
/// - user-defined: only consider traces that you've explicitly defined (either through the
|
||||||
keep_traces: Option<fn(TraceLevel) -> Tracing>,
|
/// 'trace' keyword of via the trace-if-false ('?') operator.
|
||||||
|
/// - compiler-generated: only included internal traces generated by the Aiken compiler, for
|
||||||
|
/// example in usage of 'expect'.
|
||||||
|
/// - all: include both user-defined and compiler-generated traces.
|
||||||
|
/// [optional] [default: all]
|
||||||
|
#[clap(short, long, value_parser=filter_traces_parser(), default_missing_value="all", verbatim_doc_comment)]
|
||||||
|
filter_traces: Option<fn(TraceLevel) -> Tracing>,
|
||||||
|
|
||||||
/// Choose the level of tracing
|
/// Choose the verbosity level of traces:
|
||||||
/// - silent: disable traces altogether
|
/// - silent: disable traces altogether
|
||||||
/// - compact: only culprit line numbers are shown on failures
|
/// - compact: only culprit line numbers are shown on failures
|
||||||
/// - verbose: enable full verbose traces as provided by the user or the compiler
|
/// - verbose: enable full verbose traces as provided by the user or the compiler
|
||||||
|
@ -58,7 +64,7 @@ pub fn exec(
|
||||||
match_tests,
|
match_tests,
|
||||||
exact_match,
|
exact_match,
|
||||||
watch,
|
watch,
|
||||||
keep_traces,
|
filter_traces,
|
||||||
trace_level,
|
trace_level,
|
||||||
}: Args,
|
}: Args,
|
||||||
) -> miette::Result<()> {
|
) -> miette::Result<()> {
|
||||||
|
@ -69,8 +75,8 @@ pub fn exec(
|
||||||
match_tests.clone(),
|
match_tests.clone(),
|
||||||
debug,
|
debug,
|
||||||
exact_match,
|
exact_match,
|
||||||
match keep_traces {
|
match filter_traces {
|
||||||
Some(keep_traces) => keep_traces(trace_level),
|
Some(filter_traces) => filter_traces(trace_level),
|
||||||
None => Tracing::All(trace_level),
|
None => Tracing::All(trace_level),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -82,8 +88,8 @@ pub fn exec(
|
||||||
match_tests.clone(),
|
match_tests.clone(),
|
||||||
debug,
|
debug,
|
||||||
exact_match,
|
exact_match,
|
||||||
match keep_traces {
|
match filter_traces {
|
||||||
Some(keep_traces) => keep_traces(trace_level),
|
Some(filter_traces) => filter_traces(trace_level),
|
||||||
None => Tracing::All(trace_level),
|
None => Tracing::All(trace_level),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue