pub struct BlockExpr { /* private fields */ }
Implementations§
source§impl BlockExpr
impl BlockExpr
pub fn modifier(&self) -> Option<BlockModifier>
sourcepub fn is_standalone(&self) -> bool
pub fn is_standalone(&self) -> bool
false if the block is an intrinsic part of the syntax and can’t be replaced with arbitrary expression.
fn foo() { not_stand_alone }
const FOO: () = { stand_alone };
source§impl BlockExpr
impl BlockExpr
pub fn label(&self) -> Option<Label>
pub fn stmt_list(&self) -> Option<StmtList>
pub fn async_token(&self) -> Option<SyntaxToken>
pub fn const_token(&self) -> Option<SyntaxToken>
pub fn gen_token(&self) -> Option<SyntaxToken>
pub fn move_token(&self) -> Option<SyntaxToken>
pub fn try_token(&self) -> Option<SyntaxToken>
pub fn unsafe_token(&self) -> Option<SyntaxToken>
source§impl BlockExpr
impl BlockExpr
pub fn statements(&self) -> impl Iterator<Item = Stmt>
pub fn tail_expr(&self) -> Option<Expr>
sourcepub fn may_carry_attributes(&self) -> bool
pub fn may_carry_attributes(&self) -> bool
Block expressions accept outer and inner attributes, but only when they are the outer expression of an expression statement or the final expression of another block expression.
Trait Implementations§
source§impl AstNode for BlockExpr
impl AstNode for BlockExpr
fn can_cast(kind: SyntaxKind) -> bool
fn cast(syntax: SyntaxNode) -> Option<Self>
fn syntax(&self) -> &SyntaxNode
fn clone_for_update(&self) -> Selfwhere
Self: Sized,
fn clone_subtree(&self) -> Selfwhere
Self: Sized,
source§impl From<BlockExpr> for AnyHasAttrs
impl From<BlockExpr> for AnyHasAttrs
source§fn from(node: BlockExpr) -> AnyHasAttrs
fn from(node: BlockExpr) -> AnyHasAttrs
Converts to this type from the input type.
source§impl From<BlockExpr> for ElseBranch
impl From<BlockExpr> for ElseBranch
source§impl HasAttrs for BlockExpr
impl HasAttrs for BlockExpr
impl Eq for BlockExpr
impl StructuralPartialEq for BlockExpr
Auto Trait Implementations§
impl Freeze for BlockExpr
impl !RefUnwindSafe for BlockExpr
impl !Send for BlockExpr
impl !Sync for BlockExpr
impl Unpin for BlockExpr
impl !UnwindSafe for BlockExpr
Blanket Implementations§
source§impl<N> AstNodeEdit for N
impl<N> AstNodeEdit for N
fn indent_level(&self) -> IndentLevel
fn indent(&self, level: IndentLevel) -> Self
fn dedent(&self, level: IndentLevel) -> Self
fn reset_indent(&self) -> Self
source§impl<T> AttrsOwnerEdit for Twhere
T: HasAttrs,
impl<T> AttrsOwnerEdit for Twhere
T: HasAttrs,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<N> Indent for N
impl<N> Indent for N
fn indent_level(&self) -> IndentLevel
fn indent(&self, by: IndentLevel)
fn dedent(&self, by: IndentLevel)
fn reindent_to(&self, target_level: IndentLevel)
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more