use thiserror::Error;
use super::sql_translatable::SqlMapping;
#[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
pub enum Returns {
One(SqlMapping),
SetOf(SqlMapping),
Table(Vec<SqlMapping>),
}
#[derive(Clone, Copy, Debug, Hash, Ord, PartialOrd, PartialEq, Eq, Error)]
pub enum ReturnsError {
#[error("Nested SetOfIterator in return type")]
NestedSetOf,
#[error("Nested TableIterator in return type")]
NestedTable,
#[error("Nested arrays are not supported in return types")]
NestedArray,
#[error("SetOfIterator containing TableIterator in return type")]
SetOfContainingTable,
#[error("TableIterator containing SetOfIterator in return type")]
TableContainingSetOf,
#[error("SetofIterator inside Array is not valid")]
SetOfInArray,
#[error("TableIterator inside Array is not valid")]
TableInArray,
#[error("Cannot use bare u8")]
BareU8,
#[error("SqlMapping::Skip inside Array is not valid")]
SkipInArray,
#[error("A Datum as a return means that `sql = \"...\"` must be set in the declaration")]
Datum,
}