boltffi_cli 0.27.5

CLI for BoltFFI - generate Swift, Kotlin, and WASM bindings from Rust
use std::path::PathBuf;

use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(default)]
pub struct DebugSymbolsConfig {
    pub enabled: bool,
    pub output: Option<PathBuf>,
    pub format: DebugSymbolsFormat,
    pub bundle: DebugSymbolsBundle,
    pub standalone_archive: bool,
}

impl Default for DebugSymbolsConfig {
    fn default() -> Self {
        Self {
            enabled: false,
            output: None,
            format: DebugSymbolsFormat::default(),
            bundle: DebugSymbolsBundle::default(),
            standalone_archive: true,
        }
    }
}

impl DebugSymbolsConfig {
    pub fn archive_enabled(&self) -> bool {
        self.enabled && self.standalone_archive
    }
}

#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, Default)]
#[serde(rename_all = "lowercase")]
pub enum DebugSymbolsFormat {
    #[default]
    Zip,
}

#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, Default)]
#[serde(rename_all = "snake_case")]
pub enum DebugSymbolsBundle {
    #[default]
    Unstripped,
}