tiberius/tds/codec/token/
token_info.rs
1use crate::SqlReadBytes;
2
3#[allow(dead_code)] #[derive(Debug)]
5pub struct TokenInfo {
6 pub(crate) number: u32,
8 pub(crate) state: u8,
10 pub(crate) class: u8,
12 pub(crate) message: String,
13 pub(crate) server: String,
14 pub(crate) procedure: String,
15 pub(crate) line: u32,
16}
17
18impl TokenInfo {
19 pub(crate) async fn decode<R>(src: &mut R) -> crate::Result<Self>
20 where
21 R: SqlReadBytes + Unpin,
22 {
23 let _length = src.read_u16_le().await?;
24
25 let number = src.read_u32_le().await?;
26 let state = src.read_u8().await?;
27 let class = src.read_u8().await?;
28 let message = src.read_us_varchar().await?;
29 let server = src.read_b_varchar().await?;
30 let procedure = src.read_b_varchar().await?;
31 let line = src.read_u32_le().await?;
32
33 Ok(TokenInfo {
34 number,
35 state,
36 class,
37 message,
38 server,
39 procedure,
40 line,
41 })
42 }
43}