conduit_cli/core/api/
mod.rs1pub 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}