use crate::de::row_deserializer::RowDeserializer;
use crate::de::{DbValue, DeserializationError};
use std::convert::From;
use std::marker::Sized;
#[allow(clippy::len_without_is_empty)]
pub trait DeserializableRow: Sized {
type Error: From<DeserializationError> + Sized;
type Value: DbValue;
fn len(&self) -> usize;
fn next(&mut self) -> Option<Self::Value>;
fn number_of_fields(&self) -> usize;
fn field_name(&self, field_idx: usize) -> Option<&str>;
fn try_into<'de, T>(self) -> Result<T, Self::Error>
where
T: serde::Deserialize<'de>,
{
Ok(serde::Deserialize::deserialize(&mut RowDeserializer::new(
self,
))?)
}
}