Skip to main content

scribe/buffer/token/
token_set.rs

1use crate::buffer::token::TokenIterator;
2use crate::errors::*;
3use syntect::parsing::{SyntaxReference, SyntaxSet};
4
5pub struct TokenSet<'a> {
6    data: String,
7    syntax_definition: &'a SyntaxReference,
8    syntaxes: &'a SyntaxSet,
9}
10
11impl<'a> TokenSet<'a> {
12    pub fn new(data: String, def: &'a SyntaxReference, syntaxes: &'a SyntaxSet) -> TokenSet<'a> {
13        TokenSet {
14            data,
15            syntax_definition: def,
16            syntaxes,
17        }
18    }
19
20    pub fn iter(&self) -> Result<TokenIterator<'_>> {
21        TokenIterator::new(&self.data, self.syntax_definition, self.syntaxes)
22    }
23}