pub use crate::llvm::Value; | |
use crate::llvm; | |
use std::fmt; | |
use std::hash::{Hash, Hasher}; | |
use std::ptr; | |
impl PartialEq for Value { | |
fn eq(&self, other: &Self) -> bool { | |
ptr::eq(self, other) | |
} | |
} | |
impl Eq for Value {} | |
impl Hash for Value { | |
fn hash<H: Hasher>(&self, hasher: &mut H) { | |
(self as *const Self).hash(hasher); | |
} | |
} | |
impl fmt::Debug for Value { | |
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | |
f.write_str( | |
&llvm::build_string(|s| unsafe { | |
llvm::LLVMRustWriteValueToString(self, s); | |
}) | |
.expect("non-UTF8 value description from LLVM"), | |
) | |
} | |
} |