zig/lib/std / std.zig

ArrayHashMap

Deprecated: use process.Child.

pub const ArrayHashMap = array_hash_map.ArrayHashMap;

ArrayHashMapUnmanaged

deprecated: use Build.

pub const ArrayHashMapUnmanaged = array_hash_map.ArrayHashMapUnmanaged;

ArrayList

array_list.zig

Function used to implement std.fs.cwd for wasi.

pub const ArrayList = @import("array_list.zig").ArrayList;

ArrayListAligned

array_list.zig

The application's chosen I/O mode.

pub const ArrayListAligned = @import("array_list.zig").ArrayListAligned;

ArrayListAlignedUnmanaged

array_list.zig

The current log level.

pub const ArrayListAlignedUnmanaged = @import("array_list.zig").ArrayListAlignedUnmanaged;

ArrayListUnmanaged

array_list.zig

By default Zig disables SIGPIPE by setting a "no-op" handler for it. Set this option to true to prevent that. Note that we use a "no-op" handler instead of SIG_IGN because it will not be inherited by any child process. SIGPIPE is triggered when a process attempts to write to a broken pipe. By default, SIGPIPE will terminate the process instead of exiting. It doesn't trigger the panic handler so in many cases it's unclear why the process was terminated. By capturing SIGPIPE instead, functions that write to broken pipes will return the EPIPE error (error.BrokenPipe) and the program can handle it like any other error.

pub const ArrayListUnmanaged = @import("array_list.zig").ArrayListUnmanaged;

AutoArrayHashMap

pub const AutoArrayHashMap = array_hash_map.AutoArrayHashMap;

AutoArrayHashMapUnmanaged

pub const AutoArrayHashMapUnmanaged = array_hash_map.AutoArrayHashMapUnmanaged;

AutoHashMap

pub const AutoHashMap = hash_map.AutoHashMap;

AutoHashMapUnmanaged

pub const AutoHashMapUnmanaged = hash_map.AutoHashMapUnmanaged;

BitStack

BitStack.zig
pub const BitStack = @import("BitStack.zig");

BoundedArray

bounded_array.zig
pub const BoundedArray = @import("bounded_array.zig").BoundedArray;

BoundedArrayAligned

bounded_array.zig
pub const BoundedArrayAligned = @import("bounded_array.zig").BoundedArrayAligned;

Build

Build.zig
pub const Build = @import("Build.zig");

BufMap

buf_map.zig
pub const BufMap = @import("buf_map.zig").BufMap;

BufSet

buf_set.zig
pub const BufSet = @import("buf_set.zig").BufSet;
/// Deprecated: use `process.Child`.

ChildProcess

child_process.zig
pub const ChildProcess = @import("child_process.zig").ChildProcess;

ComptimeStringMap

comptime_string_map.zig
pub const ComptimeStringMap = @import("comptime_string_map.zig").ComptimeStringMap;

DynLib

dynamic_library.zig
pub const DynLib = @import("dynamic_library.zig").DynLib;

DynamicBitSet

pub const DynamicBitSet = bit_set.DynamicBitSet;

DynamicBitSetUnmanaged

pub const DynamicBitSetUnmanaged = bit_set.DynamicBitSetUnmanaged;

EnumArray

pub const EnumArray = enums.EnumArray;

EnumMap

pub const EnumMap = enums.EnumMap;

EnumSet

pub const EnumSet = enums.EnumSet;

HashMap

pub const HashMap = hash_map.HashMap;

HashMapUnmanaged

pub const HashMapUnmanaged = hash_map.HashMapUnmanaged;

Ini

Ini.zig
pub const Ini = @import("Ini.zig");

MultiArrayList

multi_array_list.zig
pub const MultiArrayList = @import("multi_array_list.zig").MultiArrayList;

PackedIntArray

packed_int_array.zig
pub const PackedIntArray = @import("packed_int_array.zig").PackedIntArray;

PackedIntArrayEndian

packed_int_array.zig
pub const PackedIntArrayEndian = @import("packed_int_array.zig").PackedIntArrayEndian;

PackedIntSlice

packed_int_array.zig
pub const PackedIntSlice = @import("packed_int_array.zig").PackedIntSlice;

PackedIntSliceEndian

packed_int_array.zig
pub const PackedIntSliceEndian = @import("packed_int_array.zig").PackedIntSliceEndian;

PriorityQueue

priority_queue.zig
pub const PriorityQueue = @import("priority_queue.zig").PriorityQueue;

PriorityDequeue

priority_dequeue.zig
pub const PriorityDequeue = @import("priority_dequeue.zig").PriorityDequeue;

Progress

Progress.zig
pub const Progress = @import("Progress.zig");

RingBuffer

RingBuffer.zig
pub const RingBuffer = @import("RingBuffer.zig");

SegmentedList

segmented_list.zig
pub const SegmentedList = @import("segmented_list.zig").SegmentedList;

SemanticVersion

SemanticVersion.zig
pub const SemanticVersion = @import("SemanticVersion.zig");

SinglyLinkedList

linked_list.zig
pub const SinglyLinkedList = @import("linked_list.zig").SinglyLinkedList;

StaticBitSet

pub const StaticBitSet = bit_set.StaticBitSet;

StringHashMap

pub const StringHashMap = hash_map.StringHashMap;

StringHashMapUnmanaged

pub const StringHashMapUnmanaged = hash_map.StringHashMapUnmanaged;

StringArrayHashMap

pub const StringArrayHashMap = array_hash_map.StringArrayHashMap;

StringArrayHashMapUnmanaged

pub const StringArrayHashMapUnmanaged = array_hash_map.StringArrayHashMapUnmanaged;

TailQueue

linked_list.zig
pub const TailQueue = @import("linked_list.zig").TailQueue;

Target

target.zig
pub const Target = @import("target.zig").Target;

Thread

Thread.zig
pub const Thread = @import("Thread.zig");

Treap

treap.zig
pub const Treap = @import("treap.zig").Treap;

Tz

pub const Tz = tz.Tz;

Uri

Uri.zig
pub const Uri = @import("Uri.zig");

array_hash_map

array_hash_map.zig

pub const array_hash_map = @import("array_hash_map.zig");

atomic

atomic.zig
pub const atomic = @import("atomic.zig");

base64

base64.zig
pub const base64 = @import("base64.zig");

bit_set

bit_set.zig
pub const bit_set = @import("bit_set.zig");

builtin

builtin.zig
pub const builtin = @import("builtin.zig");

c

c.zig
pub const c = @import("c.zig");

coff

coff.zig
pub const coff = @import("coff.zig");

compress

compress.zig
pub const compress = @import("compress.zig");

crypto

crypto.zig
pub const crypto = @import("crypto.zig");

cstr

cstr.zig
pub const cstr = @import("cstr.zig");

debug

debug.zig
pub const debug = @import("debug.zig");

dwarf

dwarf.zig
pub const dwarf = @import("dwarf.zig");

elf

elf.zig
pub const elf = @import("elf.zig");

enums

enums.zig
pub const enums = @import("enums.zig");

event

event.zig
pub const event = @import("event.zig");

fifo

fifo.zig
pub const fifo = @import("fifo.zig");

fmt

fmt.zig
pub const fmt = @import("fmt.zig");

fs

fs.zig
pub const fs = @import("fs.zig");

hash

hash.zig
pub const hash = @import("hash.zig");

hash_map

hash_map.zig
pub const hash_map = @import("hash_map.zig");

heap

heap.zig
pub const heap = @import("heap.zig");

http

http.zig
pub const http = @import("http.zig");

io

io.zig
pub const io = @import("io.zig");

json

json.zig
pub const json = @import("json.zig");

leb

leb128.zig
pub const leb = @import("leb128.zig");

log

log.zig
pub const log = @import("log.zig");

macho

macho.zig
pub const macho = @import("macho.zig");

math

math.zig
pub const math = @import("math.zig");

mem

mem.zig
pub const mem = @import("mem.zig");

meta

meta.zig
pub const meta = @import("meta.zig");

net

net.zig
pub const net = @import("net.zig");

os

os.zig
pub const os = @import("os.zig");

once

once.zig
pub const once = @import("once.zig").once;

packed_int_array

packed_int_array.zig
pub const packed_int_array = @import("packed_int_array.zig");

pdb

pdb.zig
pub const pdb = @import("pdb.zig");

process

process.zig
pub const process = @import("process.zig");

rand

rand.zig
pub const rand = @import("rand.zig");

sort

sort.zig
pub const sort = @import("sort.zig");

simd

simd.zig
pub const simd = @import("simd.zig");

ascii

ascii.zig
pub const ascii = @import("ascii.zig");

tar

tar.zig
pub const tar = @import("tar.zig");

testing

testing.zig
pub const testing = @import("testing.zig");

time

time.zig
pub const time = @import("time.zig");

tz

tz.zig
pub const tz = @import("tz.zig");

unicode

unicode.zig
pub const unicode = @import("unicode.zig");

valgrind

valgrind.zig
pub const valgrind = @import("valgrind.zig");

wasm

wasm.zig
pub const wasm = @import("wasm.zig");

zig

zig.zig
pub const zig = @import("zig.zig");

start

start.zig
pub const start = @import("start.zig");

build


/// deprecated: use `Build`.
pub const build = Build;

options


const root = @import("root");
const options_override = if (@hasDecl(root, "std_options")) root.std_options else struct {};

enable_segfault_handler:


pub const options = struct {
    pub const enable_segfault_handler: bool = if (@hasDecl(options_override, "enable_segfault_handler"))
        options_override.enable_segfault_handler
    else
        debug.default_enable_segfault_handler;

wasiCwd:


    /// Function used to implement std.fs.cwd for wasi.
    pub const wasiCwd: fn () fs.Dir = if (@hasDecl(options_override, "wasiCwd"))
        options_override.wasiCwd
    else
        fs.defaultWasiCwd;

io_mode:


    /// The application's chosen I/O mode.
    pub const io_mode: io.Mode = if (@hasDecl(options_override, "io_mode"))
        options_override.io_mode
    else if (@hasDecl(options_override, "event_loop"))
        .evented
    else
        .blocking;

event_loop:


    pub const event_loop: event.Loop.Instance = if (@hasDecl(options_override, "event_loop"))
        options_override.event_loop
    else
        event.Loop.default_instance;

event_loop_mode:


    pub const event_loop_mode: event.Loop.Mode = if (@hasDecl(options_override, "event_loop_mode"))
        options_override.event_loop_mode
    else
        event.Loop.default_mode;

log_level:


    /// The current log level.
    pub const log_level: log.Level = if (@hasDecl(options_override, "log_level"))
        options_override.log_level
    else
        log.default_level;

log_scope_levels:


    pub const log_scope_levels: []const log.ScopeLevel = if (@hasDecl(options_override, "log_scope_levels"))
        options_override.log_scope_levels
    else
        &.{};

logFn:


    pub const logFn: fn (
        comptime message_level: log.Level,
        comptime scope: @TypeOf(.enum_literal),
        comptime format: []const u8,
        args: anytype,
    ) void = if (@hasDecl(options_override, "logFn"))
        options_override.logFn
    else
        log.defaultLog;

fmt_max_depth


    pub const fmt_max_depth = if (@hasDecl(options_override, "fmt_max_depth"))
        options_override.fmt_max_depth
    else
        fmt.default_max_depth;

cryptoRandomSeed:


    pub const cryptoRandomSeed: fn (buffer: []u8) void = if (@hasDecl(options_override, "cryptoRandomSeed"))
        options_override.cryptoRandomSeed
    else
        @import("crypto/tlcsprng.zig").defaultRandomSeed;

crypto_always_getrandom:


    pub const crypto_always_getrandom: bool = if (@hasDecl(options_override, "crypto_always_getrandom"))
        options_override.crypto_always_getrandom
    else
        false;

keep_sigpipe:


    /// By default Zig disables SIGPIPE by setting a "no-op" handler for it.  Set this option
    /// to `true` to prevent that.
    ///
    /// Note that we use a "no-op" handler instead of SIG_IGN because it will not be inherited by
    /// any child process.
    ///
    /// SIGPIPE is triggered when a process attempts to write to a broken pipe. By default, SIGPIPE
    /// will terminate the process instead of exiting.  It doesn't trigger the panic handler so in many
    /// cases it's unclear why the process was terminated.  By capturing SIGPIPE instead, functions that
    /// write to broken pipes will return the EPIPE error (error.BrokenPipe) and the program can handle
    /// it like any other error.
    pub const keep_sigpipe: bool = if (@hasDecl(options_override, "keep_sigpipe"))
        options_override.keep_sigpipe
    else
        false;

http_connection_pool_size


    pub const http_connection_pool_size = if (@hasDecl(options_override, "http_connection_pool_size"))
        options_override.http_connection_pool_size
    else
        http.Client.default_connection_pool_size;

side_channels_mitigations:


    pub const side_channels_mitigations: crypto.SideChannelsMitigations = if (@hasDecl(options_override, "side_channels_mitigations"))
        options_override.side_channels_mitigations
    else
        crypto.default_side_channels_mitigations;
};

// This forces the start.zig file to be imported, and the comptime logic inside that
// file decides whether to export any appropriate start symbols, and call main.
comptime {
    _ = start;

    for (@typeInfo(options_override).Struct.decls) |decl| {
        if (!@hasDecl(options, decl.name)) @compileError("no option named " ++ decl.name);
    }
}

test {
    testing.refAllDecls(@This());
}