use crate::parse::token_tree::{ParseErrorFn, SpannedToken, TokenType}; use nu_errors::ParseError; use std::borrow::Cow; pub struct Pattern { parts: Vec>>, } impl TokenType for Pattern { type Output = T; fn desc(&self) -> Cow<'static, str> { Cow::Borrowed("pattern") } fn extract_token_value( &self, token: &SpannedToken, err: ParseErrorFn, ) -> Result { for part in &self.parts { match part.extract_token_value(token, err) { Err(_) => {} Ok(result) => return Ok(result), } } err() } }