basalt_bedrock/integrations.rs
1use std::path::PathBuf;
2
3use serde::{Deserialize, Serialize};
4use serde_with::{serde_as, OneOrMany};
5use url::Url;
6
7/// Contains information for all things related to programmability and
8/// external integrations in Basalt.
9#[serde_as]
10#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
11pub struct Integrations {
12 /// Paths to files that will be executed on server events
13 #[serde_as(as = "OneOrMany<_>")]
14 #[serde(default, alias = "event_handler")]
15 pub event_handlers: Vec<PathBuf>,
16 #[serde_as(as = "OneOrMany<_>")]
17 #[serde(default, alias = "webhook")]
18 pub webhooks: Vec<Url>,
19}