use std::path::PathBuf;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum SkillDependencyKind {
Tool,
Lua,
Ffi,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum DependencyScope {
Skill,
Host,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DependencySourceType {
#[serde(rename = "github_release")]
GithubRelease,
#[serde(rename = "url")]
Url,
#[serde(rename = "skilllist", alias = "skill_list")]
SkillList,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DependencyDetectionStatus {
Present,
Missing,
}
#[derive(Debug, Clone)]
pub struct ResolvedDependencyRequest {
pub kind: SkillDependencyKind,
pub name: String,
pub scope: DependencyScope,
pub platform_key: String,
pub download_url: String,
pub version: Option<String>,
pub install_root: PathBuf,
pub archive_type: crate::skill::dependencies::DependencyArchiveType,
pub exports: Vec<crate::skill::dependencies::DependencyExportSpec>,
}