Skip to main content

nil_lua/
error.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use 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}