describe
for core
Describe the type and structure of the value(s) piped in.
Signature
> describe {flags}
Flags
--no-collect, -n
: do not collect streams of structured data--detailed, -d
: show detailed information about the value
Input/output types:
input | output |
---|---|
any | any |
Examples
Describe the type of a string
> 'hello' | describe
string
Describe the type of a record in a detailed way
> {shell:'true', uwu:true, features: {bugs:false, multiplatform:true, speed: 10}, fib: [1 1 2 3 5 8], on_save: {|x| $'Saving ($x)'}, first_commit: 2019-05-10, my_duration: (4min + 20sec)} | describe -d
╭───────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ type │ record │
│ detailed_type │ record<shell: string, uwu: bool, features: record<bugs: bool, multiplatform: bool, speed: int>, │
│ │ fib: list<int>, on_save: closure, first_commit: datetime, my_duration: duration> │
│ │ ╭──────────────┬──────────────────────────────────────────────────────────────────────────────────╮ │
│ columns │ │ │ ╭───────────────┬────────────────────────╮ │ │
│ │ │ shell │ │ type │ string │ │ │
│ │ │ │ │ detailed_type │ string │ │ │
│ │ │ │ │ rust_type │ &alloc::string::String │ │ │
│ │ │ │ │ value │ true │ │ │
│ │ │ │ ╰───────────────┴────────────────────────╯ │ │
│ │ │ │ ╭───────────────┬──────╮ │ │
│ │ │ uwu │ │ type │ bool │ │ │
│ │ │ │ │ detailed_type │ bool │ │ │
│ │ │ │ │ rust_type │ bool │ │ │
│ │ │ │ │ value │ true │ │ │
│ │ │ │ ╰───────────────┴──────╯ │ │
│ │ │ │ ╭───────────────┬──────────────────────────────────────────────────────────────╮ │ │
│ │ │ features │ │ type │ record │ │ │
│ │ │ │ │ detailed_type │ record<bugs: bool, multiplatform: bool, speed: int> │ │ │
│ │ │ │ │ │ ╭───────────────┬───────────────────────────╮ │ │ │
│ │ │ │ │ columns │ │ │ ╭───────────────┬───────╮ │ │ │ │
│ │ │ │ │ │ │ bugs │ │ type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ detailed_type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ rust_type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ value │ false │ │ │ │ │
│ │ │ │ │ │ │ │ ╰───────────────┴───────╯ │ │ │ │
│ │ │ │ │ │ │ │ ╭───────────────┬──────╮ │ │ │ │
│ │ │ │ │ │ │ multiplatform │ │ type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ detailed_type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ rust_type │ bool │ │ │ │ │
│ │ │ │ │ │ │ │ │ value │ true │ │ │ │ │
│ │ │ │ │ │ │ │ ╰───────────────┴──────╯ │ │ │ │
│ │ │ │ │ │ │ │ ╭───────────────┬─────╮ │ │ │ │
│ │ │ │ │ │ │ speed │ │ type │ int │ │ │ │ │
│ │ │ │ │ │ │ │ │ detailed_type │ int │ │ │ │ │
│ │ │ │ │ │ │ │ │ rust_type │ i64 │ │ │ │ │
│ │ │ │ │ │ │ │ │ value │ 10 │ │ │ │ │
│ │ │ │ │ │ │ │ ╰───────────────┴─────╯ │ │ │ │
│ │ │ │ │ │ ╰───────────────┴───────────────────────────╯ │ │ │
│ │ │ │ │ rust_type │ &nu_utils::shared_cow::SharedCow<nu_protocol::value::record: │ │ │
│ │ │ │ │ │ :Record> │ │ │
│ │ │ │ ╰───────────────┴──────────────────────────────────────────────────────────────╯ │ │
│ │ │ │ ╭─────────────────────┬────────────────────────────────────────────────────────╮ │ │
│ │ │ fib │ │ type │ list │ │ │
│ │ │ │ │ detailed_type │ list<int> │ │ │
│ │ │ │ │ length │ 6 │ │ │
│ │ │ │ │ rust_type │ &mut alloc::vec::Vec<nu_protocol::value::Value> │ │ │
│ │ │ │ │ │ ╭───┬──────┬───────────────┬───────────┬───────╮ │ │ │
│ │ │ │ │ value │ │ # │ type │ detailed_type │ rust_type │ value │ │ │ │
│ │ │ │ │ │ ├───┼──────┼───────────────┼───────────┼───────┤ │ │ │
│ │ │ │ │ │ │ 0 │ int │ int │ i64 │ 1 │ │ │ │
│ │ │ │ │ │ │ 1 │ int │ int │ i64 │ 1 │ │ │ │
│ │ │ │ │ │ │ 2 │ int │ int │ i64 │ 2 │ │ │ │
│ │ │ │ │ │ │ 3 │ int │ int │ i64 │ 3 │ │ │ │
│ │ │ │ │ │ │ 4 │ int │ int │ i64 │ 5 │ │ │ │
│ │ │ │ │ │ │ 5 │ int │ int │ i64 │ 8 │ │ │ │
│ │ │ │ │ │ ╰───┴──────┴───────────────┴───────────┴───────╯ │ │ │
│ │ │ │ ╰─────────────────────┴────────────────────────────────────────────────────────╯ │ │
│ │ │ │ ╭─────────────────┬────────────────────────────────────────────────────────────╮ │ │
│ │ │ on_save │ │ type │ closure │ │ │
│ │ │ │ │ detailed_type │ closure │ │ │
│ │ │ │ │ rust_type │ &alloc::boxed::Box<nu_protocol::engine::closure::Closure> │ │ │
│ │ │ │ │ value │ closure_1 │ │ │
│ │ │ │ │ │ ╭──────────┬─────────╮ │ │ │
│ │ │ │ │ signature │ │ name │ │ │ │ │
│ │ │ │ │ │ │ category │ default │ │ │ │
│ │ │ │ │ │ ╰──────────┴─────────╯ │ │ │
│ │ │ │ ╰─────────────────┴────────────────────────────────────────────────────────────╯ │ │
│ │ │ │ ╭───────────────┬──────────────────────────────────────────────────────────────╮ │ │
│ │ │ first_commit │ │ type │ datetime │ │ │
│ │ │ │ │ detailed_type │ datetime │ │ │
│ │ │ │ │ rust_type │ chrono::datetime::DateTime<chrono::offset::fixed::FixedOffse │ │ │
│ │ │ │ │ │ t> │ │ │
│ │ │ │ │ value │ 5 years ago │ │ │
│ │ │ │ ╰───────────────┴──────────────────────────────────────────────────────────────╯ │ │
│ │ │ │ ╭───────────────┬────────────╮ │ │
│ │ │ my_duration │ │ type │ duration │ │ │
│ │ │ │ │ detailed_type │ duration │ │ │
│ │ │ │ │ rust_type │ i64 │ │ │
│ │ │ │ │ value │ 4min 20sec │ │ │
│ │ │ │ ╰───────────────┴────────────╯ │ │
│ │ ╰──────────────┴──────────────────────────────────────────────────────────────────────────────────╯ │
│ rust_type │ &nu_utils::shared_cow::SharedCow<nu_protocol::value::record::Record> │
╰───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────╯
Describe the type of a stream with detailed information
> [1 2 3] | each {|i| echo $i} | describe -d
Describe a stream of data, collecting it first
> [1 2 3] | each {|i| echo $i} | describe
Describe the input but do not collect streams
> [1 2 3] | each {|i| echo $i} | describe --no-collect