aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/renderer/render_result.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_core/src/renderer/render_result.rs')
-rw-r--r--mingling_core/src/renderer/render_result.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/mingling_core/src/renderer/render_result.rs b/mingling_core/src/renderer/render_result.rs
index 82a745c..e57a5b9 100644
--- a/mingling_core/src/renderer/render_result.rs
+++ b/mingling_core/src/renderer/render_result.rs
@@ -39,6 +39,56 @@ impl Deref for RenderResult {
}
}
+impl From<()> for RenderResult {
+ fn from(_value: ()) -> Self {
+ RenderResult::new()
+ }
+}
+
+macro_rules! impl_from_int {
+ ($($ty:ty),+ $(,)?) => {
+ $(
+ impl From<$ty> for RenderResult {
+ fn from(exit_code: $ty) -> Self {
+ RenderResult {
+ exit_code: exit_code as i32,
+ ..Default::default()
+ }
+ }
+ }
+ )+
+ };
+}
+
+impl_from_int!(i32, i16, i8, u32, u16, u8, usize);
+
+impl From<&String> for RenderResult {
+ fn from(value: &String) -> Self {
+ RenderResult {
+ render_text: value.clone(),
+ exit_code: 0,
+ }
+ }
+}
+
+impl From<String> for RenderResult {
+ fn from(value: String) -> Self {
+ RenderResult {
+ render_text: value,
+ exit_code: 0,
+ }
+ }
+}
+
+impl From<&str> for RenderResult {
+ fn from(value: &str) -> Self {
+ RenderResult {
+ render_text: value.to_string(),
+ exit_code: 0,
+ }
+ }
+}
+
impl From<RenderResult> for String {
fn from(result: RenderResult) -> Self {
result.render_text