Skip to content

Commit

Permalink
feat: rid log/msg improvements (#32)
Browse files Browse the repository at this point in the history
* rid-ffi: log/error macros print to console when testing

* rid-ffi: better prefix for test rid log messages

* rid-ffi: adding msg_warn and msg_info

- those two are meant for messages to the app that aren't errors, but
  for which we should alert the user, i.e. by showing a snack bar
  message
  • Loading branch information
thlorenz authored Oct 1, 2021
1 parent bcd651e commit 1b471b7
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 17 deletions.
14 changes: 13 additions & 1 deletion rid-build/dart/_message_channel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,15 @@ import '_isolate_binding.dart' show initIsolate;

const String _MSG_SEPARATOR = '^';

enum RidMessageType { Severe, Error, LogWarn, LogInfo, LogDebug }
enum RidMessageType {
Severe,
Error,
LogWarn,
LogInfo,
LogDebug,
MsgInfo,
MsgWarn
}

RidMessageType _ridMsgTypeFromString(String s) {
switch (s.toLowerCase()) {
Expand All @@ -20,6 +28,10 @@ RidMessageType _ridMsgTypeFromString(String s) {
return RidMessageType.LogInfo;
case "log_debug":
return RidMessageType.LogDebug;
case "msg_warn":
return RidMessageType.MsgWarn;
case "msg_info":
return RidMessageType.MsgInfo;
default:
throw ArgumentError.value(s);
}
Expand Down
73 changes: 58 additions & 15 deletions rid-ffi/src/message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,52 +70,95 @@ pub fn _post_message(msg: impl ::allo_isolate::IntoDart) {
macro_rules! log_warn {
($($arg:tt)*) => {{
let res = format!($($arg)*);
let res = format!("log_warn^{}", res);
rid::_post_message(res);

#[cfg(test)]
eprintln!("WARN: {}", res);
#[cfg(not(test))]
rid::_post_message(format!("log_warn^{}", res));
}}
}

#[macro_export]
macro_rules! log_info {
($($arg:tt)*) => {{
let res = format!($($arg)*);
let res = format!("log_info^{}", res);
rid::_post_message(res);

#[cfg(test)]
eprintln!("INFO: {}", res);
#[cfg(not(test))]
rid::_post_message(format!("log_info^{}", res));
}}
}

#[macro_export]
macro_rules! log_debug {
($($arg:tt)*) => {{
let res = format!($($arg)*);
let res = format!("log_debug^{}", res);
rid::_post_message(res);

#[cfg(test)]
eprintln!("DEBG: {}", res);
#[cfg(not(test))]
rid::_post_message(format!("log_debug^{}", res));
}}
}

// -----------------
// Err error/severe
// -----------------
#[macro_export]
macro_rules! error {
($msg:expr) => {{
let msg_res = format!("err_error^{:?}", $msg);
rid::_post_message(msg_res);
#[cfg(test)]
eprintln!("ERR: {:?}", $msg);
#[cfg(not(test))]
rid::_post_message(format!("err_error^{:?}", $msg));
}};
($msg:expr, $details:expr) => {{
let msg_res = format!("err_error^{:?}^{:?}", $msg, $details);
rid::_post_message(msg_res);
#[cfg(test)]
eprintln!("ERR: {:?} {:?}", $msg, $details);
#[cfg(not(test))]
rid::_post_message(format!("err_error^{:?}^{:?}", $msg, $details));
}};
}

#[macro_export]
macro_rules! severe {
($msg:expr) => {{
let msg_res = format!("err_severe^{:?}", $msg);
rid::_post_message(msg_res);
#[cfg(test)]
eprintln!("ERR!: {:?}", $msg);
#[cfg(not(test))]
rid::_post_message(format!("err_severe^{:?}", $msg));
}};
($msg:expr, $details:expr) => {{
let msg_res = format!("err_severe^{:?}^{:?}", $msg, $details);
rid::_post_message(msg_res);
#[cfg(test)]
eprintln!("ERR!: {:?} {:?}", $msg, $details);
#[cfg(not(test))]
rid::_post_message(format!("err_severe^{:?}^{:?}", $msg, $details));
}};
}

// -----------------
// User Messages
// -----------------
#[macro_export]
macro_rules! msg_warn {
($($arg:tt)*) => {{
let res = format!($($arg)*);

#[cfg(test)]
eprintln!("MSGW: {}", res);
#[cfg(not(test))]
rid::_post_message(format!("msg_warn^{}", res));
}}
}

#[macro_export]
macro_rules! msg_info {
($($arg:tt)*) => {{
let res = format!($($arg)*);

#[cfg(test)]
eprintln!("MSGI: {}", res);
#[cfg(not(test))]
rid::_post_message(format!("msg_info^{}", res));
}}
}
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pub use rid_ffi::{
post, RidVec, _encode_with_id, _encode_without_id, _init_msg_isolate,
_init_reply_isolate, _option_ref_to_pointer, _post_message,
allo_isolate as _allo_isolate, error, log_debug, log_info, log_warn,
severe,
msg_info, msg_warn, severe,
};
pub use rid_macro::*;

Expand Down

0 comments on commit 1b471b7

Please sign in to comment.