1#[macro_use]
2extern crate serde_derive;
3
4extern crate rmp_serde as rmps;
5use rmps::{Deserializer, Serializer};
6use serde::{Deserialize, Serialize};
7use std::io::Cursor;
8
9pub fn serialize<T>(item: T) -> ::std::result::Result<Vec<u8>, Box<dyn ::std::error::Error>>
10where
11 T: Serialize,
12{
13 let mut buf = Vec::new();
14 item.serialize(&mut Serializer::new(&mut buf))?;
15 Ok(buf)
16}
17
18pub fn deserialize<'de, T: Deserialize<'de>>(
19 buf: &[u8],
20) -> ::std::result::Result<T, Box<dyn ::std::error::Error>> {
21 let mut de = Deserializer::new(Cursor::new(buf));
22 match Deserialize::deserialize(&mut de) {
23 Ok(t) => Ok(t),
24 Err(e) => Err(format!("Failed to de-serialize: {}", e).into()),
25 }
26}
27
28pub mod catalog;
29pub mod stream;
30
31pub mod token {
32 pub enum TokenType {
33 Actor,
34 Account,
35 Operator,
36 }
37}
38
39#[derive(Debug, PartialEq, Deserialize, Serialize)]
40pub struct PingResponse {
41 pub catalog_healthy: bool,
42 pub streams_healthy: bool,
43 pub operator_signers: Vec<String>,
44}