tiberius/tds/codec/column_data/
date.rs1use 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}