tiberius/tds/codec/token/
token_info.rs

1use crate::SqlReadBytes;
2
3#[allow(dead_code)] // we might want to debug the values
4#[derive(Debug)]
5pub struct TokenInfo {
6    /// info number
7    pub(crate) number: u32,
8    /// error state
9    pub(crate) state: u8,
10    /// severity (<10: Info)
11    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}