rsbind 0.6.0

Provide tools to bind rust trait with other language and export library artifact directly. Invoke rust functions just like you write it in native language.
Documentation
pub(crate) enum Arch {
    Unknown,
    Linux32,
    Linux64,
    LinuxArm,
    LinuxArm64,
    Windows32,
    Windows64,
    WindowsArm64,
    Osx32,
    Osx64,
    OsxPpc,
    OsxArm64,
}

impl Arch {
    pub(crate) fn from_env() -> Self {
        if cfg!(target_os = "windows") && cfg!(target_arch = "x86") {
            Arch::Windows32
        } else if cfg!(target_os = "windows") && cfg!(target_arch = "x86_64") {
            Arch::Windows64
        } else if cfg!(target_os = "windows") && cfg!(target_arch = "aarch64") {
            Arch::WindowsArm64
        } else if cfg!(target_os = "macos") && cfg!(target_arch = "x86") {
            Arch::Osx32
        } else if cfg!(target_os = "macos") && cfg!(target_arch = "x86_64") {
            Arch::Osx64
        } else if cfg!(target_os = "macos") && cfg!(target_arch = "aarch64") {
            Arch::OsxArm64
        } else if cfg!(target_os = "macos") && cfg!(target_arch = "powerpc") {
            Arch::OsxPpc
        } else if cfg!(target_os = "linux") && cfg!(target_arch = "x86") {
            Arch::Linux32
        } else if cfg!(target_os = "linux") && cfg!(target_arch = "x86_64") {
            Arch::Linux64
        } else if cfg!(target_os = "linux") && cfg!(target_arch = "arm") {
            Arch::LinuxArm
        } else if cfg!(target_os = "linux") && cfg!(target_arch = "aarch64") {
            Arch::LinuxArm64
        } else {
            Arch::Unknown
        }
    }

    pub(crate) fn as_string(&self) -> String {
        match self {
            Arch::Unknown => "unknown",
            Arch::Linux32 => "linux_32",
            Arch::Linux64 => "linux_64",
            Arch::LinuxArm => "linux_arm",
            Arch::LinuxArm64 => "linux_arm64",
            Arch::Windows32 => "windows_32",
            Arch::Windows64 => "windows_64",
            Arch::WindowsArm64 => "windows_arm64",
            Arch::Osx32 => "osx_32",
            Arch::Osx64 => "osx_64",
            Arch::OsxPpc => "osx_ppc",
            Arch::OsxArm64 => "osx_arm64",
        }
        .to_string()
    }
}