diff options
Diffstat (limited to 'ops/lib.rs')
-rw-r--r-- | ops/lib.rs | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/ops/lib.rs b/ops/lib.rs index 7fa800b14..b4bef1d13 100644 --- a/ops/lib.rs +++ b/ops/lib.rs @@ -411,12 +411,7 @@ fn codegen_arg( return quote! { let #ident = (); }; } // Fast path for `String` - if let Some(is_ref) = is_string(&**ty) { - let ref_block = if is_ref { - quote! { let #ident = #ident.as_ref(); } - } else { - quote! {} - }; + if is_string(&**ty) { return quote! { let #ident = match #core::v8::Local::<#core::v8::String>::try_from(args.get(#idx as i32)) { Ok(v8_string) => #core::serde_v8::to_utf8(v8_string, scope), @@ -424,18 +419,6 @@ fn codegen_arg( return #core::_ops::throw_type_error(scope, format!("Expected string at position {}", #idx)); } }; - #ref_block - }; - } - // Fast path for `Cow<'_, str>` - if is_cow_str(&**ty) { - return quote! { - let #ident = match #core::v8::Local::<#core::v8::String>::try_from(args.get(#idx as i32)) { - Ok(v8_string) => ::std::borrow::Cow::Owned(#core::serde_v8::to_utf8(v8_string, scope)), - Err(_) => { - return #core::_ops::throw_type_error(scope, format!("Expected string at position {}", #idx)); - } - }; }; } // Fast path for `Option<String>` @@ -646,25 +629,14 @@ fn is_result(ty: impl ToTokens) -> bool { } } -fn is_string(ty: impl ToTokens) -> Option<bool> { - let toks = tokens(ty); - if toks == "String" { - return Some(false); - } - if toks == "& str" { - return Some(true); - } - None +fn is_string(ty: impl ToTokens) -> bool { + tokens(ty) == "String" } fn is_option_string(ty: impl ToTokens) -> bool { tokens(ty) == "Option < String >" } -fn is_cow_str(ty: impl ToTokens) -> bool { - tokens(&ty).starts_with("Cow <") && tokens(&ty).ends_with("str >") -} - enum SliceType { U8, U8Mut, |