Enum cretonne_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 sy mbol table.
External names are primarily used as keys by code using Cretonne to map
from a cretonne_codegen::ir::FuncRef
or similar to additional associated
data.
External names can also serve as a primitive testing and debugging tool.
In particular, many .cton
test files use function names to identify
functions.
Variants
User
A name in a user-defined symbol table. Cretonne does not interpret these numbers in any way.
Fields of User
namespace: u32 | Arbitrary. |
index: u32 | Arbitrary. |
TestCase
A test case function name of up to 10 ascii characters. This is not intended to be used outside test cases.
Fields of TestCase
length: u8 | How many of the bytes in |
ascii: [u8; 16] | Ascii bytes of the name. |
LibCall(LibCall)
A well-known runtime library function.
Methods
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 indicies.
Examples
// Create `ExternalName` from integer indicies let name = ExternalName::user(123, 456); assert_eq!(name.to_string(), "u123:456");
Trait Implementations
impl Debug for ExternalName
[src]
fn fmt(&self, __arg_0: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Clone for ExternalName
[src]
fn clone(&self) -> ExternalName
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl PartialEq for ExternalName
[src]
fn eq(&self, __arg_0: &ExternalName) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &ExternalName) -> bool
[src]
This method tests for !=
.
impl Eq for ExternalName
[src]
impl Default for ExternalName
[src]
impl Display for ExternalName
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more