use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "lowercase")]
pub enum KotlinFfiStyle {
#[default]
Panama,
Jni,
}
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq, Eq, JsonSchema)]
#[serde(rename_all = "lowercase")]
pub enum KotlinTarget {
#[default]
Jvm,
Native,
Multiplatform,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonSchema)]
pub struct KotlinConfig {
pub package: Option<String>,
#[serde(default)]
pub features: Option<Vec<String>>,
#[serde(default)]
pub serde_rename_all: Option<String>,
#[serde(default)]
pub rename_fields: HashMap<String, String>,
#[serde(default)]
pub exclude_functions: Vec<String>,
#[serde(default)]
pub exclude_types: Vec<String>,
#[serde(default)]
pub run_wrapper: Option<String>,
#[serde(default)]
pub extra_lint_paths: Vec<String>,
#[serde(default)]
pub target: KotlinTarget,
#[serde(default)]
pub mode: Option<String>,
#[serde(default)]
pub ffi_style: KotlinFfiStyle,
}