Skip to main content

conduit_cli/core/api/
mod.rs

1pub mod fabricmc;
2pub mod minecraftforge;
3pub mod modrinth;
4pub mod mojang;
5pub mod neoforged;
6pub mod papermc;
7pub mod purpurmc;
8
9use crate::core::domain::addon::Addon;
10use crate::errors::ConduitResult;
11
12pub trait AddonProvider {
13    fn get_addon(&self, id: &str)
14    -> impl std::future::Future<Output = ConduitResult<Addon>> + Send;
15    fn get_source(
16        &self,
17        id: &str,
18        version: &str,
19    ) -> impl std::future::Future<Output = ConduitResult<Addon>> + Send;
20}
21
22#[derive(Default)]
23pub struct ConduitAPI {
24    pub modrinth: modrinth::ModrinthClient,
25    pub mojang: mojang::MojangClient,
26    pub neoforged: neoforged::NeoForgeClient,
27    pub fabricmc: fabricmc::FabricClient,
28    pub papermc: papermc::PaperClient,
29    pub minecraftforge: minecraftforge::ForgeClient,
30    pub purpurmc: purpurmc::PurpurClient,
31}
32
33impl ConduitAPI {
34    pub fn new() -> Self {
35        Self::default()
36    }
37}