aboutsummaryrefslogtreecommitdiff
path: root/examples/example-repl-basic
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-repl-basic')
-rw-r--r--examples/example-repl-basic/Cargo.lock18
-rw-r--r--examples/example-repl-basic/src/main.rs24
2 files changed, 30 insertions, 12 deletions
diff --git a/examples/example-repl-basic/Cargo.lock b/examples/example-repl-basic/Cargo.lock
index b96ae7f..d405eaa 100644
--- a/examples/example-repl-basic/Cargo.lock
+++ b/examples/example-repl-basic/Cargo.lock
@@ -6,7 +6,7 @@ version = 4
name = "example-repl-basic"
version = "0.1.0"
dependencies = [
- "just_fmt",
+ "just_fmt 0.1.2",
"mingling",
]
@@ -17,8 +17,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e"
[[package]]
-name = "mingling"
+name = "just_fmt"
version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6170dccbc3ea15dfb7f2da964097f814aba1dd8f746d4ffc56f33245c38e6d96"
+
+[[package]]
+name = "mingling"
+version = "0.3.0"
dependencies = [
"mingling_core",
"mingling_macros",
@@ -27,16 +33,16 @@ dependencies = [
[[package]]
name = "mingling_core"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
- "just_fmt",
+ "just_fmt 0.2.0",
]
[[package]]
name = "mingling_macros"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
- "just_fmt",
+ "just_fmt 0.2.0",
"proc-macro2",
"quote",
"syn",
diff --git a/examples/example-repl-basic/src/main.rs b/examples/example-repl-basic/src/main.rs
index 8df8c22..d15319e 100644
--- a/examples/example-repl-basic/src/main.rs
+++ b/examples/example-repl-basic/src/main.rs
@@ -14,6 +14,7 @@ use mingling::{
setup::{BasicREPLOutputSetup, BasicREPLPromptSetup, BasicREPLReadlineSetup},
this,
};
+use std::io::Write;
use std::{env::current_dir, path::PathBuf};
// Resource to store the current directory
@@ -136,10 +137,12 @@ fn handle_ls(_prev: EntryLs, current_dir: &ResCurrentDir) -> Next {
/// Render ResultList data
#[renderer]
-fn render_list(list: ResultList) {
+fn render_list(list: ResultList) -> RenderResult {
+ let mut render_result = RenderResult::new();
for item in list.inner {
- r_println!("{}", item);
+ writeln!(render_result, "{}", item).ok();
}
+ render_result
}
// Handle exit command event
@@ -161,15 +164,24 @@ fn handle_clear(_prev: EntryClear) {
/// Handle path not found event
#[renderer]
-fn render_error_directory_not_exist(err: ErrorDirectoryNotExist) {
- r_println!("Directory not found: {}", err.inner.display())
+fn render_error_directory_not_exist(err: ErrorDirectoryNotExist) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(
+ render_result,
+ "Directory not found: {}",
+ err.inner.display()
+ )
+ .ok();
+ render_result
}
/// Handle dispatcher not found event
/// Renders the error when a command is not found.
#[renderer]
-fn dispatcher_not_found(prev: ErrorDispatcherNotFound) {
- r_println!("Command not found: \"{}\"", prev.join(", "))
+fn dispatcher_not_found(prev: ErrorDispatcherNotFound) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(render_result, "Command not found: \"{}\"", prev.join(", ")).ok();
+ render_result
}
gen_program!();