parse_type_name

Function parse_type_name 

Source
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());