blob: d7fbb503e07b76b523e8e3f81fbc02da97becece (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
mod curseforge;
mod modrinth;
mod multimc;
use super::{archive::Archive, types::ParsedModpack};
type ParserFn = fn(&mut Archive) -> Result<ParsedModpack, String>;
const PARSERS: [ParserFn; 3] = [modrinth::parse, curseforge::parse, multimc::parse];
pub(crate) fn parse(archive: &mut Archive) -> Result<ParsedModpack, String> {
PARSERS
.iter()
.find_map(|parser| parser(archive).ok())
.ok_or_else(|| "unsupported modpack".to_string())
}
|