1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::{Result, ResultExt}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Serialize, Deserialize)] pub enum RequestMessage { Ping { v: i64 }, GetVersion, DebugInfo { info: String }, RefreshSchema { full: bool }, BeginTransaction, RollbackTransaction, CommitTransaction, RunQuery { id: Uuid, sql: String } } impl RequestMessage { pub fn from_json(s: &str) -> Result<RequestMessage> { serde_json::from_str(&s).chain_err(|| format!("Can't decode RequestMessage from [{}]", s)) } pub fn to_json(&self) -> Result<String> { serde_json::to_string_pretty(&self).chain_err(|| "Can't encode RequestMessage") } }