intercom_common/model/
mod.rs

1//!
2//! COM library parse model.
3//!
4//! Defines the items constructed from the various COM attributes.
5//!
6//! Should unify COM attribute expansion and crate parsing for IDL/Manifest/etc.
7//! purposes in the future.
8//!
9
10#[derive(Fail, Debug)]
11#[non_exhaustive]
12pub enum ParseError
13{
14    #[fail(display = "Parsing [com_library] failed: {}", _0)]
15    ComLibrary(String),
16
17    #[fail(display = "Parsing [com_class] item {} failed: {}", _0, _1)]
18    ComClass(String, String),
19
20    #[fail(display = "Parsing [com_interface] item {} failed: {}", _0, _1)]
21    ComInterface(String, String),
22
23    #[fail(display = "Processing crate failed: {}", _0)]
24    ComCrate(String),
25
26    #[fail(display = "Reading TOML failed: {}", _0)]
27    CargoToml(String),
28}
29
30pub type ParseResult<T> = Result<T, ParseError>;
31
32#[macro_use]
33mod macros;
34
35mod comlibrary;
36pub use self::comlibrary::*;
37mod comclass;
38pub use self::comclass::*;
39mod cominterface;
40pub use self::cominterface::*;