vicis 0.1.0

Manipulate LLVM-IR in Pure Rust
Documentation
pub mod parser;

pub use parser::parse;

use std::fmt;

#[derive(Clone, Copy)]
pub enum Linkage {
    Private,
    Internal,
    External,
    ExternalWeak,
    AvailableExternally,
    LinkOnceAny,
    LinkOnceODR,
    LinkOnceODRAutoHide,
    WeakAny,
    WeakODR,
    Common,
    Appending,
    DLLImport,
    DLLExport,
    Ghost,
    LinkerPrivate,
    LinkerPrivateWeak,
}

impl fmt::Debug for Linkage {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            Self::Private => write!(f, "private"),
            Self::Internal => write!(f, "internal"),
            Self::External => write!(f, "external"),
            Self::ExternalWeak => write!(f, "externalweak"),
            Self::AvailableExternally => write!(f, "availableexternally"),
            Self::LinkOnceAny => write!(f, "linkonceany"),
            Self::LinkOnceODR => write!(f, "linkonceodr"),
            Self::LinkOnceODRAutoHide => write!(f, "linkonceodrautohide"),
            Self::WeakAny => write!(f, "weakany"),
            Self::WeakODR => write!(f, "weakodr"),
            Self::Common => write!(f, "common"),
            Self::Appending => write!(f, "appending"),
            Self::DLLImport => write!(f, "dllimport"),
            Self::DLLExport => write!(f, "dllexport"),
            Self::Ghost => write!(f, "ghost"),
            Self::LinkerPrivate => write!(f, "linkerprivate"),
            Self::LinkerPrivateWeak => write!(f, "linkerprivateweak"),
        }
    }
}