1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::source::token_rewriter::TokenRewriter;
/// Trait with common MaybeTokenRewriter APIs
pub trait MaybeTokenRewriterAPI {
/// Constructs `Some` variant
fn new_some(token_rewriter: TokenRewriter) -> Self
where
Self: Sized;
/// Constructs `None` variant
fn new_none() -> Self
where
Self: Sized;
/// Returns true if `self` is `Some`
fn is_some(&self) -> bool;
/// Returns true if `self` is `None`
fn is_none(&self) -> bool;
/// Casts &self to Option<&TokenRewriter>
fn as_token_rewriter(&self) -> Option<&TokenRewriter>;
/// Casts &mut self to Option<&mut TokenRewriter>
fn as_token_rewriter_mut(&mut self) -> Option<&mut TokenRewriter>;
/// Casts self to TokenRewriter. Panics if self is `None`
fn into_token_rewriter(self) -> TokenRewriter;
}