use crate::span::Span;
#[derive(Debug)]
pub struct Token<T> {
pub kind: T,
pub span: Span,
}
impl<T> Token<T> {
pub fn new(kind: T, span: Span) -> Self {
Token { kind, span }
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::span::Span;
#[test]
fn test_token_creation() {
let span = Span::new(0, 10);
let token = Token::new("let", span);
assert_eq!(token.kind, "let");
assert_eq!(token.span.start, 0);
assert_eq!(token.span.end, 10);
}
}