1use serde::Serialize;
5use serde::ser::Serializer;
6use std::io;
7
8pub use mlua::Result as LuaResult;
9pub use std::result::Result as StdResult;
10
11pub type Result<T, E = Error> = StdResult<T, E>;
12pub type AnyResult<T> = anyhow::Result<T>;
13
14#[derive(Debug, thiserror::Error)]
15pub enum Error {
16 #[error(transparent)]
17 Client(#[from] nil_client::Error),
18 #[error(transparent)]
19 Io(#[from] io::Error),
20 #[error(transparent)]
21 Lua(#[from] mlua::Error),
22 #[error(transparent)]
23 Unknown(#[from] anyhow::Error),
24}
25
26impl Serialize for Error {
27 fn serialize<S>(&self, serializer: S) -> StdResult<S::Ok, S::Error>
28 where
29 S: Serializer,
30 {
31 serializer.serialize_str(self.to_string().as_str())
32 }
33}