mago_analyzer/plugin/provider/
mod.rs1pub mod assertion;
4pub mod function;
5pub mod method;
6pub mod property;
7pub mod throw;
8
9pub use assertion::*;
10pub use function::*;
11pub use method::*;
12pub use property::*;
13pub use throw::*;
14
15#[derive(Debug, Clone, Copy)]
16pub struct ProviderMeta {
17 pub id: &'static str,
18 pub name: &'static str,
19 pub description: &'static str,
20}
21
22impl ProviderMeta {
23 #[must_use]
24 pub const fn new(id: &'static str, name: &'static str, description: &'static str) -> Self {
25 Self { id, name, description }
26 }
27}
28
29pub trait Provider: Send + Sync {
30 fn meta() -> &'static ProviderMeta
31 where
32 Self: Sized;
33}