use cratestack_core::Value;
#[derive(Debug, Clone, PartialEq)]
pub enum SqlValue {
Bool(bool),
Int(i64),
Float(f64),
String(String),
Bytes(Vec<u8>),
Uuid(uuid::Uuid),
DateTime(chrono::DateTime<chrono::Utc>),
Json(Value),
Decimal(cratestack_core::Decimal),
NullBool,
NullInt,
NullFloat,
NullString,
NullBytes,
NullUuid,
NullDateTime,
NullJson,
NullDecimal,
}
#[derive(Debug, Clone, PartialEq)]
pub enum FilterValue {
None,
Single(SqlValue),
Many(Vec<SqlValue>),
}
#[derive(Debug, Clone, PartialEq)]
pub struct SqlColumnValue {
pub column: &'static str,
pub value: SqlValue,
}
pub fn find_duplicate_sql_value(values: &[SqlValue]) -> Option<(usize, usize)> {
for (index, value) in values.iter().enumerate() {
if let Some(earlier) = values[..index].iter().position(|prior| prior == value) {
return Some((earlier, index));
}
}
None
}