From 670d936defd28daf5854522a8d03f849b0f4cd5d Mon Sep 17 00:00:00 2001 From: Kogia-sima Date: Wed, 15 Jul 2020 00:02:54 +0900 Subject: [PATCH] break: remove runtime::Context API --- sailfish-compiler/src/optimizer.rs | 8 ++++---- sailfish-compiler/src/procmacro.rs | 10 ++++------ sailfish-compiler/src/translator.rs | 4 ++-- sailfish/src/runtime/macros.rs | 14 +++++++------- sailfish/src/runtime/mod.rs | 13 ------------- 5 files changed, 17 insertions(+), 32 deletions(-) diff --git a/sailfish-compiler/src/optimizer.rs b/sailfish-compiler/src/optimizer.rs index e5791fd..1456696 100644 --- a/sailfish-compiler/src/optimizer.rs +++ b/sailfish-compiler/src/optimizer.rs @@ -74,14 +74,14 @@ impl VisitMut for OptmizerImpl { fl.body.stmts.remove(0); *fl.body.stmts.last_mut().unwrap() = syn::parse2(quote! { - __sf_rt::render_text!(_ctx, #concat); + __sf_rt::render_text!(__sf_buf, #concat); }) .unwrap(); let new_expr = syn::parse2(quote! {{ - __sf_rt::render_text!(_ctx, #sf); + __sf_rt::render_text!(__sf_buf, #sf); #fl; - unsafe { _ctx.buf.set_len(_ctx.buf.len() - #sf_len); } + unsafe { __sf_buf.set_len(__sf_buf.len() - #sf_len); } }}) .unwrap(); @@ -116,7 +116,7 @@ impl VisitMut for OptmizerImpl { buffer.push_str(line.trim_start()); } } - i.mac.tokens = quote! { _ctx, #buffer }; + i.mac.tokens = quote! { __sf_buf, #buffer }; return; } } diff --git a/sailfish-compiler/src/procmacro.rs b/sailfish-compiler/src/procmacro.rs index b542590..affcf68 100644 --- a/sailfish-compiler/src/procmacro.rs +++ b/sailfish-compiler/src/procmacro.rs @@ -274,18 +274,16 @@ fn derive_template_impl(tokens: TokenStream) -> Result static SIZE_HINT: __sf_rt::SizeHint = __sf_rt::SizeHint::new(); - let mut _ctx = __sf_rt::Context { - buf: __sf_rt::Buffer::from(std::mem::take(buf)) - }; + let mut __sf_buf = __sf_rt::Buffer::from(std::mem::take(buf)); let _size_hint = SIZE_HINT.get(); - _ctx.buf.reserve(_size_hint); + __sf_buf.reserve(_size_hint); let #name { #field_names } = self; include!(#output_file_string); - SIZE_HINT.update(_ctx.buf.len()); - *buf = _ctx.buf.into_string(); + SIZE_HINT.update(__sf_buf.len()); + *buf = __sf_buf.into_string(); Ok(()) } } diff --git a/sailfish-compiler/src/translator.rs b/sailfish-compiler/src/translator.rs index be5c115..85d3717 100644 --- a/sailfish-compiler/src/translator.rs +++ b/sailfish-compiler/src/translator.rs @@ -106,7 +106,7 @@ impl SourceBuilder { fn write_text<'a>(&mut self, token: &Token<'a>) { use std::fmt::Write; - self.source.push_str("__sf_rt::render_text!(_ctx, "); + self.source.push_str("__sf_rt::render_text!(__sf_buf, "); // write text token with Debug::fmt write!(self.source, "{:?}", token.as_str()).unwrap(); @@ -123,7 +123,7 @@ impl SourceBuilder { self.source.push_str("__sf_rt::"); self.source.push_str(method); - self.source.push_str("!(_ctx, "); + self.source.push_str("!(__sf_buf, "); self.write_token(token); self.source.push_str(");\n"); } diff --git a/sailfish/src/runtime/macros.rs b/sailfish/src/runtime/macros.rs index 6a5b84e..103f095 100644 --- a/sailfish/src/runtime/macros.rs +++ b/sailfish/src/runtime/macros.rs @@ -1,29 +1,29 @@ #[macro_export] #[doc(hidden)] macro_rules! render { - ($ctx:ident, $value:expr) => { - $crate::runtime::Render::render(&($value), &mut $ctx.buf)? + ($buf:ident, $value:expr) => { + $crate::runtime::Render::render(&($value), &mut $buf)? }; } #[macro_export] #[doc(hidden)] macro_rules! render_escaped { - ($ctx:ident, $value:expr) => { - $crate::runtime::Render::render_escaped(&($value), &mut $ctx.buf)? + ($buf:ident, $value:expr) => { + $crate::runtime::Render::render_escaped(&($value), &mut $buf)? }; } #[macro_export] #[doc(hidden)] macro_rules! render_text { - ($ctx:ident, $value:expr) => { - $ctx.buf.push_str($value) + ($buf:ident, $value:expr) => { + $buf.push_str($value) }; } #[macro_export] #[doc(hidden)] macro_rules! render_noop { - ($ctx:ident, $value:expr) => {}; + ($buf:ident, $value:expr) => {}; } diff --git a/sailfish/src/runtime/mod.rs b/sailfish/src/runtime/mod.rs index 1dc51ff..ac144a4 100644 --- a/sailfish/src/runtime/mod.rs +++ b/sailfish/src/runtime/mod.rs @@ -69,19 +69,6 @@ impl From for RenderError { pub type RenderResult = Result; -#[doc(hidden)] -pub struct Context { - #[doc(hidden)] - pub buf: Buffer, -} - -impl Context { - #[inline] - pub fn into_result(self) -> RenderResult { - Ok(self.buf.into_string()) - } -} - // #[inline(never)] // pub fn _instantiate(table: Vec>) -> String { // let mut buffer = Buffer::with_capacity(130000);