1use serde::Serialize;
5use shared::span::{GetSpan, Span};
6
7#[derive(Debug, Serialize, PartialEq, Clone)]
11#[serde(tag = "type")]
12pub enum Literal {
13 Integer { value: i64, span: Span },
14 Float { value: f64, span: Span },
15 String { value: String, span: Span },
16 Boolean { value: bool, span: Span },
17}
18
19impl GetSpan for Literal {
20 fn span(&self) -> &Span {
21 match self {
22 Self::Integer { span, .. } => span,
23 Self::Float { span, .. } => span,
24 Self::String { span, .. } => span,
25 Self::Boolean { span, .. } => span,
26 }
27 }
28}