Bahex f63cecc316
add metadata access command (#13785)
# Description
Add `metadata access`, which allows accessing/inspecting the metadata of
a stream in a closure.
```nu
ls | metadata access {|meta|
    ...
}
```

- The metadata is provided as an argument to the closure, identical to
the record obtained with `metadata` command.

- `metadata access` passes its input stream into the closure as it is.

- Within the closure, both the metadata and the stream are available.
The closure may modify, collect or pass the stream as it is.

# Motivation
- Without this command, nu code can't act on metadata without losing the
stream, use cases requiring both the stream and metadata must be
implemented either as a built-in or a plugin.

- This command allows users to enhance presentation of data, similar to
`table` coloring the output of `ls`.
2024-09-11 12:44:06 -05:00

34 lines
677 B
Rust

mod ast;
mod debug_;
mod explain;
mod info;
mod inspect;
mod inspect_table;
mod metadata;
mod metadata_access;
mod metadata_set;
mod profile;
mod timeit;
mod view;
mod view_files;
mod view_ir;
mod view_source;
mod view_span;
pub use ast::Ast;
pub use debug_::Debug;
pub use explain::Explain;
pub use info::DebugInfo;
pub use inspect::Inspect;
pub use inspect_table::build_table;
pub use metadata::Metadata;
pub use metadata_access::MetadataAccess;
pub use metadata_set::MetadataSet;
pub use profile::DebugProfile;
pub use timeit::TimeIt;
pub use view::View;
pub use view_files::ViewFiles;
pub use view_ir::ViewIr;
pub use view_source::ViewSource;
pub use view_span::ViewSpan;