tiberius/tds/codec/column_data/
bit.rs

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