From 191a6ba330bd47fc3b9cc05d59b2d456b471eb89 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 19 Jul 2019 19:05:34 +0300 Subject: convenience api --- crates/ra_syntax/src/syntax_node.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'crates/ra_syntax/src/syntax_node.rs') diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index cf680e66a..98955832b 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs @@ -423,6 +423,13 @@ impl SyntaxElement { } } + pub fn into_node(self) -> Option { + match self { + SyntaxElement::Node(node) => Some(node), + SyntaxElement::Token(_) => None, + } + } + pub fn as_token(&self) -> Option<&SyntaxToken> { match self { SyntaxElement::Node(_) => None, @@ -430,6 +437,13 @@ impl SyntaxElement { } } + pub fn into_token(self) -> Option { + match self { + SyntaxElement::Node(_) => None, + SyntaxElement::Token(token) => Some(token), + } + } + pub fn next_sibling_or_token(&self) -> Option { match self { SyntaxElement::Node(it) => it.next_sibling_or_token(), -- cgit v1.2.3