Skip to main content

alright/
lib.rs

1mod modules;
2
3pub use alright_derive::Exception;
4pub mod traits {
5    pub use crate::modules::{
6        traits::{
7            template_display::TemplateDisplay,
8            exception_utils::ExceptionUtils,
9            transform::Transform,
10            commonly::{
11                PromiseErr,
12                AlrightBox,
13                AlrightError
14            }
15        }
16    };
17}
18pub mod commonly {
19    pub use crate::modules::commonly::{
20        Exception,
21        AbstractException,
22        JustAException,
23        KeyboardInterrupt,
24        SystemExit,
25        ArithmeticError,
26        AssertionError,
27        AttributeError,
28        BufferError,
29        EOFError,
30        MemoryError,
31        NameError,
32        ReferenceError,
33        RuntimeError,
34        StopAsyncIteration,
35        StopIteration,
36        SystemError,
37        TypeError,
38        ValueError,
39        FloatingPointError,
40        OverflowError,
41        ZeroDivisionError,
42        BlockingIOError,
43        ChildProcessError,
44        ConnectionError,
45        FileExistsError,
46        FileNotFoundError,
47        InterruptedError,
48        IsADirectoryError,
49        NotADirectoryError,
50        PermissionError,
51        ProcessLookupError,
52        TimeoutError,
53        IndexError,
54        KeyError,
55        NotImplementedError,
56        RecursionError,
57        UnicodeError,
58        BrokenPipeError,
59        ConnectionAbortedError,
60        ConnectionRefusedError,
61        ConnectionResetError,
62        UnicodeDecodeError,
63        UnicodeEncodeError,
64        UnicodeTranslateError,
65        OSError,
66    };
67}
68pub use {
69    modules::{
70        types::{
71            property::Property,
72            erased_property::ErasedProperty,
73            exception::BaseException,
74            erased_exception::ErasedBaseException,
75            // train::Train,
76        },
77    }
78};
79pub(crate) use {
80    modules::{
81        types::{
82            train::Train,
83        },
84    }
85};
86
87extern crate self as alright;
88
89#[macro_export]
90macro_rules! exceptions {
91    ($($name:ident),+ $(,)?) => {
92        $(
93            #[derive(::alright::Exception, Debug, Clone, ::serde::Serialize)]
94            pub struct $name {
95                pub property: Box<Property<$name>>,
96            }
97        )*
98    };
99}