1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
use pest::iterators::Pairs;

use crate::{type_name::TypeName, type_name_parser::Rule, ParseError};

pub(crate) fn get_data_type(mut array_pairs: Pairs<'_, Rule>) -> Result<TypeName, ParseError> {
    let data_type_pair = array_pairs
        .next()
        .ok_or(ParseError::Unknown)?
        .into_inner()
        .next()
        .ok_or(ParseError::Unknown)?;

    let data_type = TypeName::from_pair(data_type_pair)?;

    Ok(data_type)
}