azalea_protocol/packets/game/
c_command_suggestions.rs

1use azalea_brigadier::suggestion::Suggestions;
2use azalea_buf::AzBuf;
3use azalea_protocol_macros::ClientboundGamePacket;
4
5#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
6pub struct ClientboundCommandSuggestions {
7    #[var]
8    pub id: u32,
9    pub suggestions: Suggestions,
10}
11
12#[cfg(test)]
13mod tests {
14    use std::io::Cursor;
15
16    use azalea_brigadier::{context::StringRange, suggestion::Suggestion};
17    use azalea_buf::{AzaleaRead, AzaleaWrite};
18
19    use super::*;
20
21    #[test]
22    fn test_suggestions() {
23        let suggestions = Suggestions::new(
24            StringRange::new(0, 5),
25            vec![Suggestion::new_with_tooltip(
26                StringRange::new(1, 4),
27                "foo",
28                "bar".to_string(),
29            )],
30        );
31        let mut buf = Vec::new();
32        suggestions.azalea_write(&mut buf).unwrap();
33        let mut cursor = Cursor::new(&buf[..]);
34        let suggestions = Suggestions::azalea_read(&mut cursor).unwrap();
35        assert_eq!(suggestions, suggestions);
36    }
37}