diff --git a/crates/nu-command/src/bytes/bytes_.rs b/crates/nu-command/src/bytes/bytes_.rs new file mode 100644 index 0000000000..0e277e8253 --- /dev/null +++ b/crates/nu-command/src/bytes/bytes_.rs @@ -0,0 +1,49 @@ +use nu_engine::get_full_help; +use nu_protocol::{ + ast::Call, + engine::{Command, EngineState, Stack}, + Category, IntoPipelineData, PipelineData, Signature, Value, +}; + +#[derive(Clone)] +pub struct Bytes; + +impl Command for Bytes { + fn name(&self) -> &str { + "bytes" + } + + fn signature(&self) -> Signature { + Signature::build("bytes").category(Category::Bytes) + } + + fn usage(&self) -> &str { + "Various commands for working with byte data" + } + + fn run( + &self, + engine_state: &EngineState, + stack: &mut Stack, + call: &Call, + _input: PipelineData, + ) -> Result { + Ok(Value::String { + val: get_full_help(&Bytes.signature(), &Bytes.examples(), engine_state, stack), + span: call.head, + } + .into_pipeline_data()) + } +} + +#[cfg(test)] +mod test { + use crate::Bytes; + + #[test] + fn test_examples() { + use crate::test_examples; + + test_examples(Bytes {}) + } +} diff --git a/crates/nu-command/src/bytes/mod.rs b/crates/nu-command/src/bytes/mod.rs index 30cdd039e0..8f961ea3c7 100644 --- a/crates/nu-command/src/bytes/mod.rs +++ b/crates/nu-command/src/bytes/mod.rs @@ -1,10 +1,13 @@ +mod bytes_; mod length; mod starts_with; + use nu_protocol::ast::CellPath; use nu_protocol::{PipelineData, ShellError, Span, Value}; use std::sync::atomic::AtomicBool; use std::sync::Arc; +pub use bytes_::Bytes; pub use length::BytesLen; pub use starts_with::BytesStartsWith; diff --git a/crates/nu-command/src/default_context.rs b/crates/nu-command/src/default_context.rs index 604ba726c5..845b9827aa 100644 --- a/crates/nu-command/src/default_context.rs +++ b/crates/nu-command/src/default_context.rs @@ -209,6 +209,7 @@ pub fn create_default_context(cwd: impl AsRef) -> EngineState { // Bytes bind_command! { + Bytes, BytesLen, BytesStartsWith }