diff options
| author | Jonas Maier <> | 2026-03-05 15:06:01 +0100 |
|---|---|---|
| committer | Jonas Maier <> | 2026-03-05 15:06:01 +0100 |
| commit | 374e7d8db5bcd8e78862d7b4f44836927e5df9ff (patch) | |
| tree | 340274938965a5586a2a2c5d46e338ace74a6ac2 /src/run | |
| parent | 759e9d3d71a6262fe0680ae0156d967f1e23b836 (diff) | |
| download | pish-374e7d8db5bcd8e78862d7b4f44836927e5df9ff.tar.gz | |
more builtins
Diffstat (limited to 'src/run')
| -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 { |
