====== Lyx – Units & Standard Library ====== Lyx bietet eine umfangreiche Standardbibliothek (std), die modular aufgebaut ist. Jede Unit muss explizit importiert werden, sofern es sich nicht um einen Compiler-Builtin handelt. ===== 1) Kern-Units (Basis-System) ===== Diese Units bilden das Fundament für jedes Lyx-Programm und kapseln die direkten Syscalls der Zielplattform. ^ Unit ^ Beschreibung ^ Highlights ^ | std.IO | Standard Ein-/Ausgabe | Print, Printf, ReadLn, WriteLn | | std.FS | Dateisystem-Operationen | Stat, MkDir, Unlink, Rename, DirIter | | std.Env | Laufzeit-Umgebung | Zugriff auf Command-Line Argumente (Args) | | std.Time | Zeit & Datum | Zeitstempel, Kalenderfunktionen, Delays | ===== 2) Mathematik & Geodaten ===== Optimiert für Performance und teilweise mit Fixed-Point-Arithmetik für Systeme ohne FPU (v0.4.0). ^ Unit ^ Beschreibung ^ Highlights ^ | std.Math | Erweiterte Mathematik | Trigonometrie (Sin/Cos), Power, Fixed-Point | | std.Geo | Geolocation & Navigation | DistanceM, BoundingBox, DMS Parsing | | std.Vector | Lineare Algebra | Vec2, Rotation, Normalisierung | | std.Rect / std.Circle | Geometrische Formen | Kollisionstests, Flächenberechnungen | ===== 3) Datenstrukturen & Algorithmen ===== Lyx bietet typsichere Container und effiziente Sortieralgorithmen. std.List: Dynamische Listen, Stacks, Queues und RingBuffer. std.Sort: Hybrid-QuickSort (Median-of-Three) kombiniert mit InsertionSort für kleine Partitionen. std.Result: Implementierung des Result/Option-Patterns für modernes Error-Handling ohne Exceptions. ===== 4) Netzwerk & Protokolle (std.Net) ===== Eine der mächtigsten Komponenten von Lyx v0.5.7. Sie bietet RFC-konforme Implementierungen für: ^ Kategorie ^ Protokolle ^ | Web & Mail | HTTP/S, SMTP, IMAP, DNS | | IoT & Messaging | MQTT, SNMP, SIP | | Sicherheit | SSH, TLS-Abstraktion | | Routing | BGP | ===== 5) Hilfsmittel & Systemnahes ===== ^ Unit ^ Beschreibung ^ | std.Hash | Kryptographie: SHA-256, CRC32, FNV-1a, DJB2. | | std.Conv | Bit-Manipulation, Endianness-Konvertierung, Int-to-Str. | | std.Color | RGBA, HSL und Hex-Farbkonvertierung. | | std.CRT | ANSI-Terminal-Steuerung (Farben, Cursor-Positionierung). | ===== 6) Import-Mechanismen ===== Lyx unterstützt verschiedene Wege, Units effizient einzubinden: ==== Einzel-Import ==== Der Standardfall für gezielte Abhängigkeiten. import std.IO; import std.Math as M; // Mit Alias ==== Wildcard-Import (v0.5.2+) ==== Um ganze Bibliotheksgruppen (z.B. den Netzwerk-Stack) zu laden, kann der Sternchen-Operator verwendet werden. Dies lädt alle Units in der angegebenen Ebene. import std.Net.*; // Importiert Http, Dns, Mqtt, etc. ===== Beispiel: Einbindung mehrerer Units ===== unit NetworkTool; import std.IO; import std.Net.*; // Wildcard-Import für alle Protokolle import std.Time; pub fn Main(): int64 { PrintStr("Starte Request um: "); Time.Now() |> Time.Print(); // Http ist durch den Wildcard-Import verfügbar var response := Http.Get("[http://api.seolizer.de/status](http://api.seolizer.de/status)"); if (response.StatusCode == 200) { PrintStr("Erfolg!"); } return 0; }