aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-07-21 04:28:37 +0800
committer魏曹先生 <1992414357@qq.com>2026-07-21 04:30:00 +0800
commit844c3c9029f75f37622413f3e3a92b93664852ed (patch)
treee4278b1c0cd09b41abba113742b716bdf8ef7ac3 /mingling_core/src
parent2683d7c6c3c88355fd3188ac2b2c68338ae2d205 (diff)
feat(core): add From impl for RenderResult with closure coercion
Diffstat (limited to 'mingling_core/src')
-rw-r--r--mingling_core/src/renderer/render_result.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/mingling_core/src/renderer/render_result.rs b/mingling_core/src/renderer/render_result.rs
index a495857..c38522a 100644
--- a/mingling_core/src/renderer/render_result.rs
+++ b/mingling_core/src/renderer/render_result.rs
@@ -47,6 +47,15 @@ pub enum RenderResultMode {
Stderr = 1,
}
+impl<F> From<F> for RenderResult
+where
+ F: FnOnce() -> RenderResult,
+{
+ fn from(value: F) -> Self {
+ value()
+ }
+}
+
impl Write for RenderResult {
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
let s = std::str::from_utf8(buf).map_err(|_| {
@@ -233,7 +242,7 @@ impl RenderResult {
/// src.append_to_buffer("Hello", RenderResultMode::Stdout);
/// src.append_to_buffer(" Error", RenderResultMode::Stderr);
///
- /// dest.append_otehr(src);
+ /// dest.append_other(src);
/// assert_eq!(dest.to_string(), "Hello Error");
/// ```
pub fn append_other(&mut self, other: impl Into<RenderResult>) {