Fix(app::command_interface): Add a (workaround) print function
The default print function prints to stdout, which obviously doesn't work with a tui application. This wrapper however is a rather poor workaround, as it only works with strings (lua `print` calls `tostring` to turn non string values in something printable).
This commit is contained in:
parent
49c9e90ba6
commit
57b01f0dbb
|
@ -13,6 +13,12 @@ use crate::app::Event;
|
|||
|
||||
#[ci_command_enum]
|
||||
struct Commands {
|
||||
/// Returns the string given to it
|
||||
// FIXME(@Soispha): This is a workaround because the default print prints to stdout,
|
||||
// which is obviously not ideal
|
||||
print: fn(String) -> String,
|
||||
|
||||
// Begin debug functions
|
||||
/// Greets the user
|
||||
greet: fn(String) -> String,
|
||||
|
||||
|
|
|
@ -104,10 +104,16 @@ pub async fn handle(
|
|||
send_main_output!("Hi, {}!", name);
|
||||
EventStatus::Ok
|
||||
}
|
||||
Command::Print(output) => {
|
||||
// FIXME(@Soispha): This only works with strings, which is a clear downside to the
|
||||
// original print function. Find a way to just use the original one
|
||||
send_main_output!("{}", output);
|
||||
EventStatus::Ok
|
||||
}
|
||||
Command::Help(_) => todo!(),
|
||||
Command::RaiseError(err) => {
|
||||
send_error_output!(err);
|
||||
EventStatus::Ok
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Reference in New Issue