kodept_core/structure/
span.rs1use std::borrow::Cow;
2
3use derive_more::Constructor;
4
5use crate::code_point::CodePoint;
6use crate::structure::Located;
7
8#[repr(transparent)]
9#[derive(Constructor, Debug, Clone, PartialEq, Copy)]
10pub struct Span {
11 pub point: CodePoint,
12}
13
14impl Located for Span {
15 fn location(&self) -> CodePoint {
16 self.point
17 }
18}
19
20pub trait CodeHolder {
21 fn get_chunk(&self, at: CodePoint) -> Cow<str>;
22
23 fn get_chunk_located<L: Located>(&self, for_item: &L) -> Cow<str> {
24 self.get_chunk(for_item.location())
25 }
26}