Enum cranelift_codegen::ir::ExternalName [−][src]
pub enum ExternalName {
User {
namespace: u32,
index: u32,
},
TestCase {
length: u8,
ascii: [u8; 16],
},
LibCall(LibCall),
}The name of an external is either a reference to a user-defined symbol table, or a short sequence of ascii bytes so that test cases do not have to keep track of a symbol table.
External names are primarily used as keys by code using Cranelift to map
from a cranelift_codegen::ir::FuncRef or similar to additional associated
data.
External names can also serve as a primitive testing and debugging tool.
In particular, many .clif test files use function names to identify
functions.
Variants
A name in a user-defined symbol table. Cranelift does not interpret these numbers in any way.
A test case function name of up to a hardcoded amount of ascii characters. This is not intended to be used outside test cases.
Show fields
LibCall(LibCall)A well-known runtime library function.
Implementations
impl ExternalName[src]
impl ExternalName[src]pub fn testcase<T: AsRef<[u8]>>(v: T) -> Self[src]
Creates a new external name from a sequence of bytes. Caller is expected
to guarantee bytes are only ascii alphanumeric or _.
Examples
// Create `ExternalName` from a string. let name = ExternalName::testcase("hello"); assert_eq!(name.to_string(), "%hello");
pub fn user(namespace: u32, index: u32) -> Self[src]
Create a new external name from user-provided integer indices.
Examples
// Create `ExternalName` from integer indices let name = ExternalName::user(123, 456); assert_eq!(name.to_string(), "u123:456");
Trait Implementations
impl Clone for ExternalName[src]
impl Clone for ExternalName[src]fn clone(&self) -> ExternalName[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Default for ExternalName[src]
impl Default for ExternalName[src]impl FromStr for ExternalName[src]
impl FromStr for ExternalName[src]impl PartialEq<ExternalName> for ExternalName[src]
impl PartialEq<ExternalName> for ExternalName[src]