gitql_ast/types/
varargs.rs

1use 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}