tiberius/tds/codec/column_data/
image.rs
1use crate::{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 ptr_len = src.read_u8().await? as usize;
8
9 if ptr_len == 0 {
10 return Ok(ColumnData::Binary(None));
11 }
12
13 for _ in 0..ptr_len {
14 src.read_u8().await?;
15 }
16
17 src.read_i32_le().await?; src.read_u32_le().await?; let len = src.read_u32_le().await? as usize;
21 let mut buf = Vec::with_capacity(len);
22
23 for _ in 0..len {
24 buf.push(src.read_u8().await?);
25 }
26
27 Ok(ColumnData::Binary(Some(buf.into())))
28}