tiberius/tds/codec/column_data/
date.rs

1use crate::Error;
2
3use crate::{sql_read_bytes::SqlReadBytes, time::Date, ColumnData};
4
5pub(crate) async fn decode<R>(src: &mut R) -> crate::Result<ColumnData<'static>>
6where
7    R: SqlReadBytes + Unpin,
8{
9    let len = src.read_u8().await?;
10
11    let res = match len {
12        0 => ColumnData::Date(None),
13        3 => ColumnData::Date(Some(Date::decode(src).await?)),
14        _ => {
15            return Err(Error::Protocol(
16                format!("daten: length of {} is invalid", len).into(),
17            ))
18        }
19    };
20
21    Ok(res)
22}