diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/run/builtin.rs | 21 | ||||
| -rw-r--r-- | src/run/mod.rs | 2 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs index ea7651b..3f89ebb 100644 --- a/src/run/builtin.rs +++ b/src/run/builtin.rs @@ -121,10 +121,29 @@ impl Builtin for _type { stdout: &mut dyn Write, ) -> std::io::Result<()> { for arg in args { - let kind = todo!(); + let kind = "todo"; writeln!(stdout, "{} is {}", String::from_utf8_lossy(arg), kind)?; } Ok(()) } } + +pub struct builtins; +impl Builtin for builtins { + fn name(&self) -> &str { + "builtins" + } + + fn io( + &self, + _args: &[BString], + _stdin: &mut dyn Read, + stdout: &mut dyn Write, + ) -> std::io::Result<()> { + for b in super::BUILTINS { + write!(stdout, "{} ", b.name())?; + } + writeln!(stdout) + } +} diff --git a/src/run/mod.rs b/src/run/mod.rs index 5e3b3e7..73011fd 100644 --- a/src/run/mod.rs +++ b/src/run/mod.rs @@ -168,6 +168,8 @@ const BUILTINS: &[&'static dyn Builtin] = &[ &builtin::sink("into", false), &builtin::sink("append", true), &builtin::from, + &builtin::builtins, + &builtin::_type, ]; pub struct CommandDispatch { |
