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

Back to std index