From 0ecfaf7b7cf762590d5ba92f57567901c02af15b Mon Sep 17 00:00:00 2001 From: Akshay Date: Tue, 23 Mar 2021 13:09:41 +0530 Subject: implement message display and types --- src/message.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/message.rs (limited to 'src/message.rs') diff --git a/src/message.rs b/src/message.rs new file mode 100644 index 0000000..d1032cf --- /dev/null +++ b/src/message.rs @@ -0,0 +1,42 @@ +#[derive(Debug)] +pub struct Message { + pub text: String, + pub kind: MessageKind, +} + +impl Message { + pub fn new() -> Self { + Self { + text: String::new(), + kind: MessageKind::Info, + } + } + pub fn kind(mut self, kind: MessageKind) -> Self { + self.kind = kind; + self + } + pub fn text>(mut self, text: S) -> Self { + self.text = text.as_ref().into(); + self + } +} + +#[derive(Debug, Copy, Clone)] +pub enum MessageKind { + Error, + Info, + Hint, + LispResult, +} + +impl From for Message +where + T: AsRef, +{ + fn from(item: T) -> Self { + return Message { + text: item.as_ref().into(), + kind: MessageKind::Info, + }; + } +} -- cgit v1.2.3