use rowan::TextRange;
use smol_str::SmolStr;
use super::scope::ScopeId;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct BindingId(pub u32);
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum BindingKind {
Global,
Local,
Const,
Param,
KeywordParam,
ForVar,
LetVar,
CatchParam,
TypeParam,
Field,
Function,
Macro,
Type,
Module,
Import,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Binding {
pub name: SmolStr,
pub kind: BindingKind,
pub scope: ScopeId,
pub def_range: TextRange,
pub read: bool,
}