1#![allow(clippy::module_name_repetitions)]
2
3use crate::Encode;
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)]
7pub struct Meta<'a> {
8 pub app_id: &'a str,
9 pub app_name: &'a str,
11 pub author_id: &'a str,
12 pub author_name: &'a str,
13 pub launcher: bool,
15 pub sudo: bool,
17 pub version: u32,
20}
21
22impl<'a> Encode<'a> for Meta<'a> {}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[test]
29 fn test_meta_roundtrip() {
30 let given = Meta {
31 app_id: "some-app-id",
32 app_name: "Some App Name",
33 author_id: "some-author-id",
34 author_name: "Some Author Name",
35 launcher: false,
36 sudo: false,
37 version: 12,
38 };
39 let mut buf = vec![0; given.size()];
40 let raw = given.encode_buf(&mut buf).unwrap();
41 let actual = Meta::decode(raw).unwrap();
42 assert_eq!(given, actual);
43 }
44}