iowo/crates/lang/src/world/files/loc.rs
Schrottkatze 3eee768ce1
lang: work on various things
- work on new world
  - add file db
  - source_file parsing
  - locs
- fix some test stuff
2024-07-06 21:57:42 +02:00

29 lines
566 B
Rust

use rowan::ast::{AstNode, AstPtr};
use crate::Lang;
use super::FileId;
#[derive(Clone)]
pub struct Loc<N: AstNode<Language = Lang>> {
file: FileId,
syntax: AstPtr<N>,
}
impl<N: AstNode<Language = Lang>> Loc<N> {
pub fn new(node: N, file: FileId) -> Self {
Self::from_ptr(AstPtr::new(&node), file)
}
pub fn from_ptr(ptr: AstPtr<N>, file: FileId) -> Self {
Self { file, syntax: ptr }
}
pub fn file(&self) -> FileId {
self.file
}
pub fn syntax(&self) -> AstPtr<N> {
self.syntax.clone()
}
}