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.
A name in a user-defined symbol table. Cretonne does not interpret
these numbers in any way.
Fields of User
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 are valid?
|
ascii: [u8; 16] | |
A well-known runtime library function.
Creates a new external name from a sequence of bytes. Caller is expected
to guarantee bytes are only ascii alphanumeric or _
.
let name = ExternalName::testcase("hello");
assert_eq!(name.to_string(), "%hello");
Create a new external name from user-provided integer indicies.
let name = ExternalName::user(123, 456);
assert_eq!(name.to_string(), "u123:456");
Formats the value using the given formatter. Read more
Performs copy-assignment from source
. Read more
This method tests for self
and other
values to be equal, and is used by ==
. Read more
This method tests for !=
.
Returns the "default value" for a type. Read more
Formats the value using the given formatter. Read more
The associated error which can be returned from parsing.
Parses a string s
to return a value of this type. Read more