Struct swc_ecma_utils::function::FnEnvHoister

source ·
pub struct FnEnvHoister { /* private fields */ }
Expand description

Don’t use it against function, it will stop if come across any function use it against function body

Implementations§

source§

impl FnEnvHoister

source

pub fn new(unresolved_ctxt: SyntaxContext) -> Self

source

pub fn disable_arguments(&mut self)

Disable hoisting of arguments

source

pub fn disable_this(&mut self)

Disable hoisting of this

source

pub fn disable_super(&mut self)

Disable hoisting of nodes realted to super

source

pub fn take(&mut self) -> Self

source

pub fn to_decl(self) -> Vec<VarDeclarator>

source

pub fn to_stmt(self) -> Option<Stmt>

source

pub fn to_stmt_in_subclass(self) -> (Option<Stmt>, Option<Ident>)

Trait Implementations§

source§

impl Default for FnEnvHoister

source§

fn default() -> FnEnvHoister

Returns the “default value” for a type. Read more
source§

impl VisitMut for FnEnvHoister

source§

fn visit_mut_class(&mut self, _: &mut Class)

Don’t recurse into constructor

source§

fn visit_mut_function(&mut self, _: &mut Function)

Don’t recurse into fn

source§

fn visit_mut_getter_prop(&mut self, p: &mut GetterProp)

Don’t recurse into getter/setter/method except computed key

source§

fn visit_mut_accessibility(&mut self, _: &mut Accessibility)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_true_plus_minus(&mut self, _: &mut TruePlusMinus)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_array_type(&mut self, _: &mut TsArrayType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_call_signature_decl(&mut self, _: &mut TsCallSignatureDecl)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_conditional_type(&mut self, _: &mut TsConditionalType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_construct_signature_decl( &mut self, _: &mut TsConstructSignatureDecl )

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_constructor_type(&mut self, _: &mut TsConstructorType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_entity_name(&mut self, _: &mut TsEntityName)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_expr_with_type_args(&mut self, _: &mut TsExprWithTypeArgs)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_external_module_ref(&mut self, _: &mut TsExternalModuleRef)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_fn_or_constructor_type(&mut self, _: &mut TsFnOrConstructorType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_fn_param(&mut self, _: &mut TsFnParam)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_fn_type(&mut self, _: &mut TsFnType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_import_type(&mut self, _: &mut TsImportType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_index_signature(&mut self, _: &mut TsIndexSignature)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_indexed_access_type(&mut self, _: &mut TsIndexedAccessType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_infer_type(&mut self, _: &mut TsInferType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_interface_body(&mut self, _: &mut TsInterfaceBody)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_interface_decl(&mut self, _: &mut TsInterfaceDecl)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_intersection_type(&mut self, _: &mut TsIntersectionType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_keyword_type(&mut self, _: &mut TsKeywordType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_keyword_type_kind(&mut self, _: &mut TsKeywordTypeKind)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_mapped_type(&mut self, _: &mut TsMappedType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_method_signature(&mut self, _: &mut TsMethodSignature)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_module_ref(&mut self, _: &mut TsModuleRef)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_optional_type(&mut self, _: &mut TsOptionalType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_parenthesized_type(&mut self, _: &mut TsParenthesizedType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_property_signature(&mut self, _: &mut TsPropertySignature)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_qualified_name(&mut self, _: &mut TsQualifiedName)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_rest_type(&mut self, _: &mut TsRestType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_this_type(&mut self, _: &mut TsThisType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_this_type_or_ident(&mut self, _: &mut TsThisTypeOrIdent)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_tuple_type(&mut self, _: &mut TsTupleType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type(&mut self, _: &mut TsType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_alias_decl(&mut self, _: &mut TsTypeAliasDecl)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_ann(&mut self, _: &mut TsTypeAnn)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_element(&mut self, _: &mut TsTypeElement)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_lit(&mut self, _: &mut TsTypeLit)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_operator(&mut self, _: &mut TsTypeOperator)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_operator_op(&mut self, _: &mut TsTypeOperatorOp)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_param(&mut self, _: &mut TsTypeParam)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_param_decl(&mut self, _: &mut TsTypeParamDecl)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_param_instantiation( &mut self, _: &mut TsTypeParamInstantiation )

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_predicate(&mut self, _: &mut TsTypePredicate)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_query(&mut self, _: &mut TsTypeQuery)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_query_expr(&mut self, _: &mut TsTypeQueryExpr)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_type_ref(&mut self, _: &mut TsTypeRef)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_union_or_intersection_type( &mut self, _: &mut TsUnionOrIntersectionType )

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_ts_union_type(&mut self, _: &mut TsUnionType)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_assign_target_pat(&mut self, n: &mut AssignTargetPat)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_block_stmt(&mut self, b: &mut BlockStmt)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_block_stmt_or_expr(&mut self, b: &mut BlockStmtOrExpr)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_expr(&mut self, e: &mut Expr)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_method_prop(&mut self, p: &mut MethodProp)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_pat(&mut self, n: &mut Pat)

This method can be overridden to customize the visitor behavior. Read more
source§

fn visit_mut_setter_prop(&mut self, p: &mut SetterProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_array_lit(&mut self, n: &mut ArrayLit)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_array_pat(&mut self, n: &mut ArrayPat)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_expr(&mut self, n: &mut AssignExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_op(&mut self, n: &mut AssignOp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_pat(&mut self, n: &mut AssignPat)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_pat_prop(&mut self, n: &mut AssignPatProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_prop(&mut self, n: &mut AssignProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_assign_target(&mut self, n: &mut AssignTarget)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_atom(&mut self, n: &mut Atom)

§

fn visit_mut_auto_accessor(&mut self, n: &mut AutoAccessor)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_await_expr(&mut self, n: &mut AwaitExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_big_int(&mut self, n: &mut BigInt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_big_int_value(&mut self, n: &mut BigInt)

§

fn visit_mut_bin_expr(&mut self, n: &mut BinExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_binary_op(&mut self, n: &mut BinaryOp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_binding_ident(&mut self, n: &mut BindingIdent)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_bool(&mut self, n: &mut Bool)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_break_stmt(&mut self, n: &mut BreakStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_call_expr(&mut self, n: &mut CallExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_callee(&mut self, n: &mut Callee)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_catch_clause(&mut self, n: &mut CatchClause)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_class_decl(&mut self, n: &mut ClassDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_class_expr(&mut self, n: &mut ClassExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_class_member(&mut self, n: &mut ClassMember)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_class_members(&mut self, n: &mut Vec<ClassMember>)

§

fn visit_mut_class_method(&mut self, n: &mut ClassMethod)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_class_prop(&mut self, n: &mut ClassProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_computed_prop_name(&mut self, n: &mut ComputedPropName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_cond_expr(&mut self, n: &mut CondExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_constructor(&mut self, n: &mut Constructor)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_continue_stmt(&mut self, n: &mut ContinueStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_debugger_stmt(&mut self, n: &mut DebuggerStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_decl(&mut self, n: &mut Decl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_decorator(&mut self, n: &mut Decorator)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_decorators(&mut self, n: &mut Vec<Decorator>)

§

fn visit_mut_default_decl(&mut self, n: &mut DefaultDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_do_while_stmt(&mut self, n: &mut DoWhileStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_empty_stmt(&mut self, n: &mut EmptyStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_all(&mut self, n: &mut ExportAll)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_decl(&mut self, n: &mut ExportDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_default_decl(&mut self, n: &mut ExportDefaultDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_default_expr(&mut self, n: &mut ExportDefaultExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_default_specifier(&mut self, n: &mut ExportDefaultSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_named_specifier(&mut self, n: &mut ExportNamedSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_namespace_specifier( &mut self, n: &mut ExportNamespaceSpecifier )

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_specifier(&mut self, n: &mut ExportSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_export_specifiers(&mut self, n: &mut Vec<ExportSpecifier>)

§

fn visit_mut_expr_or_spread(&mut self, n: &mut ExprOrSpread)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_expr_or_spreads(&mut self, n: &mut Vec<ExprOrSpread>)

§

fn visit_mut_expr_stmt(&mut self, n: &mut ExprStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_exprs(&mut self, n: &mut Vec<Box<Expr>>)

§

fn visit_mut_fn_decl(&mut self, n: &mut FnDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_fn_expr(&mut self, n: &mut FnExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_for_head(&mut self, n: &mut ForHead)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_for_in_stmt(&mut self, n: &mut ForInStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_for_of_stmt(&mut self, n: &mut ForOfStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_for_stmt(&mut self, n: &mut ForStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ident(&mut self, n: &mut Ident)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_if_stmt(&mut self, n: &mut IfStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import(&mut self, n: &mut Import)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import_decl(&mut self, n: &mut ImportDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import_default_specifier(&mut self, n: &mut ImportDefaultSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import_named_specifier(&mut self, n: &mut ImportNamedSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import_phase(&mut self, n: &mut ImportPhase)

§

fn visit_mut_import_specifier(&mut self, n: &mut ImportSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_import_specifiers(&mut self, n: &mut Vec<ImportSpecifier>)

§

fn visit_mut_import_star_as_specifier(&mut self, n: &mut ImportStarAsSpecifier)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_invalid(&mut self, n: &mut Invalid)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_attr(&mut self, n: &mut JSXAttr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_attr_name(&mut self, n: &mut JSXAttrName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_attr_or_spread(&mut self, n: &mut JSXAttrOrSpread)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_attr_or_spreads(&mut self, n: &mut Vec<JSXAttrOrSpread>)

§

fn visit_mut_jsx_attr_value(&mut self, n: &mut JSXAttrValue)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_closing_element(&mut self, n: &mut JSXClosingElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_closing_fragment(&mut self, n: &mut JSXClosingFragment)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_element(&mut self, n: &mut JSXElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_element_child(&mut self, n: &mut JSXElementChild)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_element_children(&mut self, n: &mut Vec<JSXElementChild>)

§

fn visit_mut_jsx_element_name(&mut self, n: &mut JSXElementName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_empty_expr(&mut self, n: &mut JSXEmptyExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_expr(&mut self, n: &mut JSXExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_expr_container(&mut self, n: &mut JSXExprContainer)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_fragment(&mut self, n: &mut JSXFragment)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_member_expr(&mut self, n: &mut JSXMemberExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_namespaced_name(&mut self, n: &mut JSXNamespacedName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_object(&mut self, n: &mut JSXObject)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_opening_element(&mut self, n: &mut JSXOpeningElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_opening_fragment(&mut self, n: &mut JSXOpeningFragment)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_spread_child(&mut self, n: &mut JSXSpreadChild)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_jsx_text(&mut self, n: &mut JSXText)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_key(&mut self, n: &mut Key)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_key_value_pat_prop(&mut self, n: &mut KeyValuePatProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_key_value_prop(&mut self, n: &mut KeyValueProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_labeled_stmt(&mut self, n: &mut LabeledStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_lit(&mut self, n: &mut Lit)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_member_expr(&mut self, n: &mut MemberExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_member_prop(&mut self, n: &mut MemberProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_meta_prop_expr(&mut self, n: &mut MetaPropExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_meta_prop_kind(&mut self, n: &mut MetaPropKind)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_method_kind(&mut self, n: &mut MethodKind)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_module(&mut self, n: &mut Module)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_module_decl(&mut self, n: &mut ModuleDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_module_export_name(&mut self, n: &mut ModuleExportName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_module_item(&mut self, n: &mut ModuleItem)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>)

§

fn visit_mut_named_export(&mut self, n: &mut NamedExport)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_new_expr(&mut self, n: &mut NewExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_null(&mut self, n: &mut Null)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_number(&mut self, n: &mut Number)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_object_lit(&mut self, n: &mut ObjectLit)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_object_pat(&mut self, n: &mut ObjectPat)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_object_pat_prop(&mut self, n: &mut ObjectPatProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_object_pat_props(&mut self, n: &mut Vec<ObjectPatProp>)

§

fn visit_mut_opt_accessibility(&mut self, n: &mut Option<Accessibility>)

§

fn visit_mut_opt_atom(&mut self, n: &mut Option<Atom>)

§

fn visit_mut_opt_block_stmt(&mut self, n: &mut Option<BlockStmt>)

§

fn visit_mut_opt_call(&mut self, n: &mut OptCall)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_opt_catch_clause(&mut self, n: &mut Option<CatchClause>)

§

fn visit_mut_opt_chain_base(&mut self, n: &mut OptChainBase)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_opt_chain_expr(&mut self, n: &mut OptChainExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_opt_expr(&mut self, n: &mut Option<Box<Expr>>)

§

fn visit_mut_opt_expr_or_spread(&mut self, n: &mut Option<ExprOrSpread>)

§

fn visit_mut_opt_expr_or_spreads(&mut self, n: &mut Option<Vec<ExprOrSpread>>)

§

fn visit_mut_opt_ident(&mut self, n: &mut Option<Ident>)

§

fn visit_mut_opt_jsx_attr_value(&mut self, n: &mut Option<JSXAttrValue>)

§

fn visit_mut_opt_jsx_closing_element( &mut self, n: &mut Option<JSXClosingElement> )

§

fn visit_mut_opt_module_export_name(&mut self, n: &mut Option<ModuleExportName>)

§

fn visit_mut_opt_module_items(&mut self, n: &mut Option<Vec<ModuleItem>>)

§

fn visit_mut_opt_object_lit(&mut self, n: &mut Option<Box<ObjectLit>>)

§

fn visit_mut_opt_pat(&mut self, n: &mut Option<Pat>)

§

fn visit_mut_opt_span(&mut self, n: &mut Option<Span>)

§

fn visit_mut_opt_stmt(&mut self, n: &mut Option<Box<Stmt>>)

§

fn visit_mut_opt_str(&mut self, n: &mut Option<Box<Str>>)

§

fn visit_mut_opt_true_plus_minus(&mut self, n: &mut Option<TruePlusMinus>)

§

fn visit_mut_opt_ts_entity_name(&mut self, n: &mut Option<TsEntityName>)

§

fn visit_mut_opt_ts_namespace_body(&mut self, n: &mut Option<TsNamespaceBody>)

§

fn visit_mut_opt_ts_type(&mut self, n: &mut Option<Box<TsType>>)

§

fn visit_mut_opt_ts_type_ann(&mut self, n: &mut Option<Box<TsTypeAnn>>)

§

fn visit_mut_opt_ts_type_param_decl( &mut self, n: &mut Option<Box<TsTypeParamDecl>> )

§

fn visit_mut_opt_ts_type_param_instantiation( &mut self, n: &mut Option<Box<TsTypeParamInstantiation>> )

§

fn visit_mut_opt_var_decl_or_expr(&mut self, n: &mut Option<VarDeclOrExpr>)

§

fn visit_mut_opt_vec_expr_or_spreads( &mut self, n: &mut Vec<Option<ExprOrSpread>> )

§

fn visit_mut_opt_vec_pats(&mut self, n: &mut Vec<Option<Pat>>)

§

fn visit_mut_param(&mut self, n: &mut Param)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_param_or_ts_param_prop(&mut self, n: &mut ParamOrTsParamProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_param_or_ts_param_props(&mut self, n: &mut Vec<ParamOrTsParamProp>)

§

fn visit_mut_params(&mut self, n: &mut Vec<Param>)

§

fn visit_mut_paren_expr(&mut self, n: &mut ParenExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_pats(&mut self, n: &mut Vec<Pat>)

§

fn visit_mut_private_method(&mut self, n: &mut PrivateMethod)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_private_name(&mut self, n: &mut PrivateName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_private_prop(&mut self, n: &mut PrivateProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_program(&mut self, n: &mut Program)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_prop(&mut self, n: &mut Prop)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_prop_name(&mut self, n: &mut PropName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_prop_or_spread(&mut self, n: &mut PropOrSpread)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_prop_or_spreads(&mut self, n: &mut Vec<PropOrSpread>)

§

fn visit_mut_regex(&mut self, n: &mut Regex)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_reserved_unused(&mut self, n: &mut ReservedUnused)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_rest_pat(&mut self, n: &mut RestPat)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_return_stmt(&mut self, n: &mut ReturnStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_script(&mut self, n: &mut Script)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_seq_expr(&mut self, n: &mut SeqExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_simple_assign_target(&mut self, n: &mut SimpleAssignTarget)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_span(&mut self, n: &mut Span)

§

fn visit_mut_spread_element(&mut self, n: &mut SpreadElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_static_block(&mut self, n: &mut StaticBlock)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_stmt(&mut self, n: &mut Stmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_stmts(&mut self, n: &mut Vec<Stmt>)

§

fn visit_mut_str(&mut self, n: &mut Str)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_super(&mut self, n: &mut Super)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_super_prop(&mut self, n: &mut SuperProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_super_prop_expr(&mut self, n: &mut SuperPropExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_switch_case(&mut self, n: &mut SwitchCase)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_switch_cases(&mut self, n: &mut Vec<SwitchCase>)

§

fn visit_mut_switch_stmt(&mut self, n: &mut SwitchStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_tagged_tpl(&mut self, n: &mut TaggedTpl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_this_expr(&mut self, n: &mut ThisExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_throw_stmt(&mut self, n: &mut ThrowStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_tpl(&mut self, n: &mut Tpl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_tpl_element(&mut self, n: &mut TplElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_tpl_elements(&mut self, n: &mut Vec<TplElement>)

§

fn visit_mut_try_stmt(&mut self, n: &mut TryStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_as_expr(&mut self, n: &mut TsAsExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_const_assertion(&mut self, n: &mut TsConstAssertion)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_enum_decl(&mut self, n: &mut TsEnumDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_enum_member(&mut self, n: &mut TsEnumMember)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_enum_member_id(&mut self, n: &mut TsEnumMemberId)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_enum_members(&mut self, n: &mut Vec<TsEnumMember>)

§

fn visit_mut_ts_export_assignment(&mut self, n: &mut TsExportAssignment)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_expr_with_type_args_vec( &mut self, n: &mut Vec<TsExprWithTypeArgs> )

§

fn visit_mut_ts_fn_params(&mut self, n: &mut Vec<TsFnParam>)

§

fn visit_mut_ts_getter_signature(&mut self, n: &mut TsGetterSignature)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_import_equals_decl(&mut self, n: &mut TsImportEqualsDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_instantiation(&mut self, n: &mut TsInstantiation)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_lit(&mut self, n: &mut TsLit)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_lit_type(&mut self, n: &mut TsLitType)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_module_block(&mut self, n: &mut TsModuleBlock)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_module_decl(&mut self, n: &mut TsModuleDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_module_name(&mut self, n: &mut TsModuleName)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_namespace_body(&mut self, n: &mut TsNamespaceBody)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_namespace_decl(&mut self, n: &mut TsNamespaceDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_namespace_export_decl(&mut self, n: &mut TsNamespaceExportDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_non_null_expr(&mut self, n: &mut TsNonNullExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_param_prop(&mut self, n: &mut TsParamProp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_param_prop_param(&mut self, n: &mut TsParamPropParam)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_satisfies_expr(&mut self, n: &mut TsSatisfiesExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_setter_signature(&mut self, n: &mut TsSetterSignature)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_tpl_lit_type(&mut self, n: &mut TsTplLitType)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_tuple_element(&mut self, n: &mut TsTupleElement)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_tuple_elements(&mut self, n: &mut Vec<TsTupleElement>)

§

fn visit_mut_ts_type_assertion(&mut self, n: &mut TsTypeAssertion)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_ts_type_elements(&mut self, n: &mut Vec<TsTypeElement>)

§

fn visit_mut_ts_type_params(&mut self, n: &mut Vec<TsTypeParam>)

§

fn visit_mut_ts_types(&mut self, n: &mut Vec<Box<TsType>>)

§

fn visit_mut_unary_expr(&mut self, n: &mut UnaryExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_unary_op(&mut self, n: &mut UnaryOp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_update_expr(&mut self, n: &mut UpdateExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_update_op(&mut self, n: &mut UpdateOp)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_using_decl(&mut self, n: &mut UsingDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_var_decl(&mut self, n: &mut VarDecl)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_var_decl_kind(&mut self, n: &mut VarDeclKind)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_var_decl_or_expr(&mut self, n: &mut VarDeclOrExpr)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_var_declarator(&mut self, n: &mut VarDeclarator)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_var_declarators(&mut self, n: &mut Vec<VarDeclarator>)

§

fn visit_mut_while_stmt(&mut self, n: &mut WhileStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_with_stmt(&mut self, n: &mut WithStmt)

This method can be overridden to customize the visitor behavior. Read more
§

fn visit_mut_yield_expr(&mut self, n: &mut YieldExpr)

This method can be overridden to customize the visitor behavior. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more