libhanzzok 0.1.5

Hanzzok compiler library
Documentation
use core::fmt;

use super::Span;

pub trait Spanned {
    fn span(&self) -> Span;
}

impl<T: Spanned> Spanned for &T {
    fn span(&self) -> Span {
        <T as Spanned>::span(self).clone()
    }
}

impl<T: Spanned> Spanned for Vec<T> {
    fn span(&self) -> Span {
        self[0].span().joined_opt(self.last())
    }
}

pub trait DisplayWithSpan {
    fn fmt_with_span(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result;
}