silo:std.lib

Source src/silo:std.lib

1##!( Silo standard library — the `silo:std` package.
2##
3##  The stdlib is a single package under the reserved `silo` language
4##  namespace. External consumers reference its modules as
5##  `silo:std.core`, `silo:std.traits`, `silo:std.iter`, etc.
6##
7##  Modules:
8##    - core        — primitive types, option/result/pair/ordering
9##    - traits      — Add/Sub/Mul/Div/Eq/Ord, Display/Debug/LowerHex/Binary,
10##                    Hash/Hasher, Default, From/Into/TryFrom/TryInto, Error
11##    - collections — Foldable/Mappable/Filterable/Indexed/Keyed/Zippable/
12##                    Chainable/Concat/Join trait hierarchy, plus Seq/Map/Set
13##                    aliases, the Iterator lazy-iteration protocol, and the
14##                    generic helper words while/any/all/count. Holds the
15##                    non-core collection types as submodules:
16##                    `collections.vecdeque`, `collections.linkedlist`,
17##                    `collections.binaryheap`, `collections.btreeset`,
18##                    `collections.btreemap`.
19##    - iter        — Iterator adapter methods, Peekable wrapper, CharsIter
20##                    for Str codepoint iteration, and iterator constructors
21##    - format      — `format` macro (compile-time format-string parser)
22##    - effects     — IO/Console/FileSystem/Temporal/Env/Net/Http/Tcp/Panic
23##                    effect declarations
24##    - temporal    — Locale, PluralCategory, CurrentLocale aspect
25##    - ast         — macro AST types (Token, Expr, Pattern, MatchArm, Block,
26##                    FieldDef, VariantDef, TypeDef, ImplDef, TopLevelAst, …)
27##    - reflection  — compile-time :type-info surface (TypeInfo union + its
28##                    Int/Float/Record/Union/Enum/Newtype/Alias/Quotation/Vec/
29##                    Existential variants)
30##    - prelude     — aggregated re-exports, auto-imported into every module
31##
32##  This file is the library entry. It re-exports every name in
33##  `prelude` as public so `:use silo:std <names>` resolves the same
34##  items the auto-imported prelude exposes. The prelude remains the
35##  single source of truth for the aggregate list — this file mirrors
36##  it.
37)#
38
39:use
40  :open(pub) prelude
41    Range AnyInt AnyUInt AnyFloat AnyDecimal
42    U8 U16 U32 U64 I8 I16 I32 I64 Byte Codepoint Char Bytes
43    F16 F32 F64 D32 D64 D128
44    Bool Option Result Pair Ordering
45    Vec
46    Int Float Decimal Str Symbol Unit Never
47    Add Sub Mul Div Eq Ord Not From Into TryFrom TryInto
48    Display Debug Hash Default Error
49    LowerHex Binary
50    Ascii
51    str-from-utf16 str-from-utf8-lossy
52    Path PathSegment Component
53    main-separator
54    Matcher CodepointMatcher ByteMatcher
55    while
56    Foldable Mappable Filterable Keyed Chainable Indexed Zippable
57    Seq Map Set
58    Iterator CharsIter chars-iter
59    Locale PluralCategory
60    Pattern MatchArm Expr Block
61    Token TokenSeq
62    TypeExprAst
63    FieldDef VariantDef RecordTypeDef UnionTypeDef TypeDef
64    ImplOpDef ImplDef TopLevelAst
65    FmtSpec Alignment SignMode default-fmt-spec
66    Res Opt
67    ErrorReport error-report error-report-with-cause
68    MinMax IntMath
69    IDuration UDuration Instant
70    duration-from-secs duration-from-millis duration-from-micros duration-from-nanos
71    uduration-from-secs uduration-from-millis uduration-from-micros uduration-from-nanos
72    format
73
74  :aspect(pub) prelude CurrentLocale
75:end