pub fn parse_type_name(input: &str) -> ParseResult<Pairs<'_, Rule>>Expand description
Parses a type name.
Carbon has a static type system that includes both built-in primitive types and support for user-defined custom types. This function validates and parses type names used in variable declarations, function parameters, and return types.
§Built-in Primitive Types
- Signed Integers:
i32,i64 - Unsigned Integers:
u32,u64(if supported by grammar) - Floating-Point:
f32,f64 - Boolean:
bool - String:
String
§Custom Types
User-defined types follow standard identifier naming rules and can represent structs, classes, interfaces, or other custom type definitions.
§Arguments
input- A string slice containing exactly one type name
§Returns
Returns a ParseResult containing the parsed type name.
§Grammar Rule
This function uses the type_name grammar rule from carbon.pest.
§Examples
§Integer Types
use carbon_parser::parse_type_name;
assert!(parse_type_name("i32").is_ok());
assert!(parse_type_name("i64").is_ok());§Float Types
use carbon_parser::parse_type_name;
assert!(parse_type_name("f32").is_ok());
assert!(parse_type_name("f64").is_ok());§Boolean Type
use carbon_parser::parse_type_name;
let result = parse_type_name("bool");
assert!(result.is_ok());§String Type
use carbon_parser::parse_type_name;
let result = parse_type_name("String");
assert!(result.is_ok());§Custom Type
use carbon_parser::parse_type_name;
let result = parse_type_name("CustomType");
assert!(result.is_ok());