gitql_ast/types/
varargs.rs1use std::any::Any;
2
3use super::base::DataType;
4
5#[derive(Clone)]
6pub struct VarargsType {
7 pub base: Box<dyn DataType>,
8}
9
10impl VarargsType {
11 pub fn new(base: Box<dyn DataType>) -> Self {
12 VarargsType { base }
13 }
14}
15
16impl DataType for VarargsType {
17 fn literal(&self) -> String {
18 format!("...{}", self.base.literal())
19 }
20
21 fn equals(&self, other: &Box<dyn DataType>) -> bool {
22 other.is_any() || self.base.equals(other)
23 }
24
25 fn as_any(&self) -> &dyn Any {
26 self
27 }
28}