std::int (v0.2.2)
Parsing of signed and unsigned integers from text.
Latest
Overview
std::int parses integer values from C strings, TString values, and with explicit numeric bases.
parse[T] returns a result struct with the parsed value and a success flag. Variants such as parseWithBase and parseCString cover different inputs and bases.
Source: thrustc/std/v0.2.2/int.thrust
Public Signatures
Exported declarations for this module snapshot.
struct ParseSignedResult @public {
struct ParseUnsignedResult @public {
fn parse [T] (text: CString) T @public;
fn parseCString [T] (text: CString) T @public;
fn parseWithBase [T] (text: CString, base: s32) T @public;
fn parseCStringWithBase [T] (text: CString, base: s32) T @public;
fn parseTString [T] (text: ptr[tstring::TString]) T @public;
fn parseTStringWithBase [T] (text: ptr[tstring::TString], base: s32) T @public;
fn parseSigned(text: CString) ParseSignedResult @public;
fn parseSignedCString(text: CString) ParseSignedResult @public;
fn parseSignedWithBase(text: CString, base: s32) ParseSignedResult @public;
fn parseSignedCStringWithBase(text: CString, base: s32) ParseSignedResult @public;
fn parseSignedTString(text: ptr[tstring::TString]) ParseSignedResult @public;
fn parseSignedTStringWithBase(text: ptr[tstring::TString], base: s32) ParseSignedResult @public;
fn parseUnsigned(text: CString) ParseUnsignedResult @public;
fn parseUnsignedCString(text: CString) ParseUnsignedResult @public;
fn parseUnsignedWithBase(text: CString, base: s32) ParseUnsignedResult @public;
fn parseUnsignedCStringWithBase(text: CString, base: s32) ParseUnsignedResult @public;
fn parseUnsignedTString(text: ptr[tstring::TString]) ParseUnsignedResult @public;
fn parseUnsignedTStringWithBase(text: ptr[tstring::TString], base: s32) ParseUnsignedResult @public;
Behavior and Use
parse[T] returns a result struct with a success flag, so callers can detect failures without exceptions.
Use parseWithBase for explicit numeric bases, and parseCString or parseTString when the source is a C string or TString.
Examples
import std::int;
import std::io;
// Parse a number typed by the user into a real integer.
fn main() s32 @public {
var value: s32 = int::parse[s32]("1024");
io::print("parsed: %d\n", value);
return 0;
}
import std::int;
import std::io;
// Read a hexadecimal value such as a color code.
fn main() s32 @public {
var color: s32 = int::parseWithBase[s32]("ff", 16);
io::print("color: %d\n", color);
return 0;
}
import std::int;
import std::io;
// Parse input that may be invalid, checking the result before using it.
fn main() s32 @public {
var result := int::parseSigned("123");
if !(result->ok) {
io::print("invalid number\n");
return 0;
}
io::print("value: %d\n", (result->value as s32));
return 0;
}
Notes
- Check the success flag before reading the value.
- Base variants accept bases from 2 to 36.