Daslang Standard Library 0.6
Copyright (c) 2018-2026 Gaijin Entertainment Authors: Anton Yudintsev, Boris Batkin
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 1. Introduction
- 1.1. Core runtime
- 1.2. Strings
- 1.3. Regular expressions
- 1.4. Reflection and AST
- 1.5. Functional and algorithms
- 1.6. Data structures
- 1.7. Serialization and data
- 1.8. Jobs and concurrency
- 1.9. Macros and metaprogramming
- 1.10. Control flow macros
- 1.11. Pattern matching
- 1.12. Entity component system
- 1.13. OOP and interfaces
- 1.14. Testing and debugging
- 1.15. Code quality and tooling
- 1.16. Developer tools
- 2. Core
- 2.1. Built-in runtime
- 2.1.1. Type aliases
- 2.1.2. Constants
- 2.1.3. Handled structures
- 2.1.4. Function annotations
- 2.1.5. Call macros
- 2.1.6. Reader macros
- 2.1.7. Typeinfo macros
- 2.1.8. Handled types
- 2.1.9. Structure macros
- 2.1.10. Containers
- 2.1.11. das::string manipulation
- 2.1.12. Heap reporting
- 2.1.13. GC0 infrastructure
- 2.1.14. Smart ptr infrastructure
- 2.1.15. Macro infrastructure
- 2.1.16. Profiler
- 2.1.17. System infrastructure
- 2.1.18. Memory manipulation
- 2.1.19. Binary serializer
- 2.1.20. Path and command line
- 2.1.21. Time and date
- 2.1.22. Platform queries
- 2.1.23. String formatting
- 2.1.24. Argument consumption
- 2.1.25. Lock checking
- 2.1.26. Lock checking internals
- 2.1.27. Bit operations
- 2.1.28. Intervals
- 2.1.29. RTTI
- 2.1.30. Lock verification
- 2.1.31. Initialization and finalization
- 2.1.32. Algorithms
- 2.1.33. Memset
- 2.1.34. Malloc
- 2.1.35. Compilation and AOT
- 2.2. Math library
- 2.2.1. Constants
- 2.2.2. Handled structures
- 2.2.3. all numerics (uint*, int*, float*, double)
- 2.2.4. float* and double
- 2.2.5. float* only
- 2.2.6. float3 only
- 2.2.7. float2, float3, float4
- 2.2.8. Noise functions
- 2.2.9. lerp/mad/clamp
- 2.2.10. Matrix element access
- 2.2.11. Matrix operations
- 2.2.12. Matrix initializers
- 2.2.13. Matrix manipulation
- 2.2.14. Quaternion operations
- 2.2.15. Packing and unpacking
- 2.3. Math bit helpers
- 2.4. Boost package for math
- 2.5. Random generator library
- 2.1. Built-in runtime
- 3. Strings
- 3.1. String manipulation library
- 3.1.1. Enumerations
- 3.1.2. Handled structures
- 3.1.3. Character set
- 3.1.4. Character groups
- 3.1.5. Character by index
- 3.1.6. String properties
- 3.1.7. String builder
- 3.1.8. das::string manipulation
- 3.1.9. String modifications
- 3.1.10. Search substrings
- 3.1.11. String comparison
- 3.1.12. String conversion routines
- 3.1.13. String as array
- 3.1.14. Low level memory allocation
- 3.2. Boost package for string manipulation library
- 3.3. Temporary string utilities
- 3.4. UTF-8 utilities
- 3.5. Base64 encoding and decoding
- 3.6. Long string embedding macro
- 3.1. String manipulation library
- 4. I/O and Serialization
- 5. Data Structures
- 6. Algorithms and Functional
- 6.1. Miscellaneous algorithms
- 6.2. Functional programming library
- 6.3. LINQ
- 6.3.1. Sorting data
- 6.3.2. Set operations
- 6.3.3. Concatenation operations
- 6.3.4. Generation operations
- 6.3.5. Aggregation operations
- 6.3.6. Filtering data
- 6.3.7. Partitioning data
- 6.3.8. Join and group operations
- 6.3.9. Querying data
- 6.3.10. Element operations
- 6.3.11. Transform operations
- 6.3.12. Conversion operations
- 6.3.13. Comparators and keys
- 6.4. Boost module for LINQ
- 6.5. Pattern matching
- 7. Data Formats
- 8. Entity Component System
- 9. Concurrency
- 10. AST and Macros
- 10.1. Runtime type information library
- 10.1.1. Type aliases
- 10.1.2. Constants
- 10.1.3. Enumerations
- 10.1.4. Handled structures
- 10.1.5. Typeinfo macros
- 10.1.6. Handled types
- 10.1.7. Initialization and finalization
- 10.1.8. Type access
- 10.1.9. Rtti context access
- 10.1.10. Program access
- 10.1.11. Module access
- 10.1.12. Annotation access
- 10.1.13. Compilation and simulation
- 10.1.14. File access
- 10.1.15. Structure access
- 10.1.16. Data walking and printing
- 10.1.17. Function and mangled name hash
- 10.1.18. Context and mutex locking
- 10.1.19. Runtime data access
- 10.1.20. Tuple and variant access
- 10.1.21. Iteration
- 10.2. AST manipulation library
- 10.2.1. Type aliases
- 10.2.2. Enumerations
- 10.2.3. Handled structures
- 10.2.4. Call macros
- 10.2.5. Typeinfo macros
- 10.2.6. Handled types
- 10.2.7. Classes
- 10.2.8. Call generation
- 10.2.9. Visitor pattern
- 10.2.10. Expression generation
- 10.2.11. Adapter generation
- 10.2.12. Adapter application
- 10.2.13. Adding objects to objects
- 10.2.14. Program and module access
- 10.2.15. Textual descriptions of the objects
- 10.2.16. Searching
- 10.2.17. Iterating
- 10.2.18. Cloning
- 10.2.19. Mangled name
- 10.2.20. Size and offset
- 10.2.21. Evaluations
- 10.2.22. Error reporting
- 10.2.23. Location and context
- 10.2.24. Use queries
- 10.2.25. Log
- 10.2.26. Removal
- 10.2.27. Properties
- 10.2.28. Infer
- 10.2.29. Module queries
- 10.2.30. Debug info helpers
- 10.2.31. AOT support
- 10.2.32. String builder writer
- 10.3. Boost package for the AST
- 10.3.1. Type aliases
- 10.3.2. Function annotations
- 10.3.3. Variant macros
- 10.3.4. Structure macros
- 10.3.5. Classes
- 10.3.6. Containers
- 10.3.7. Textual descriptions of the objects
- 10.3.8. Queries
- 10.3.9. Annotations
- 10.3.10. Expression generation
- 10.3.11. Visitors
- 10.3.12. Type generation
- 10.3.13. Type casts
- 10.3.14. Setup
- 10.4. decltype macro and template function annotation
- 10.5. Template application helpers
- 10.5.1. Structures
- 10.5.2. Call macros
- 10.5.3. Template rules
- 10.5.4. Template application
- 10.5.5. Expression helpers
- 10.5.6. Expression generation
- 10.5.7. Block helpers
- 10.5.8. Global variable helpers
- 10.5.9. Hygienic names
- 10.5.10. Quoting macros
- 10.5.11. Type pointer helpers
- 10.5.12. Structure helpers
- 10.5.13. Class generation
- 10.6. AST quasiquoting infrastructure
- 10.7. Boost package for macro manipulations
- 10.8. Type macro and template structure support
- 10.9. DECS, AST block to loop
- 10.10. AST type usage collection
- 10.11. Constant expression checker and substitution
- 10.1. Runtime type information library
- 11. Annotations and Contracts
- 11.1. Miscellaneous contract annotations
- 11.2. Apply reflection pattern
- 11.3. defer and defer_delete macros
- 11.4. if_not_null macro
- 11.5. is_local_xxx ast helpers
- 11.6. safe_addr macro
- 11.7. static_let macro
- 11.8. lpipe macro
- 11.9. Assert once
- 11.10. Loop unrolling
- 11.11. Bitfield operator overloads
- 11.12. Bitfield name traits
- 11.13. Enumeration traits
- 11.14. Type trait macros
- 11.15. C++ bindings generator
- 12. Classes and Interfaces
- 13. Testing and Debugging
- 13.1. Debug agent API
- 13.1.1. Structures
- 13.1.2. Handled structures
- 13.1.3. Classes
- 13.1.4. Agent lifecycle
- 13.1.5. Cross-context invocation
- 13.1.6. Agent construction
- 13.1.7. Agent tick and state collection
- 13.1.8. Instrumentation
- 13.1.9. Data and stack walking
- 13.1.10. Context inspection
- 13.1.11. Breakpoints
- 13.1.12. Memory
- 13.2. Code coverage profiling
- 13.3. Instrumenting profiler
- 13.4. Profiler cross-context helpers
- 13.5. Debug expression evaluator
- 13.6. Faker
- 13.7. Fuzzer
- 13.8. Debug Adapter Protocol data structures
- 13.9. Heartbeat callback injection
- 13.1. Debug agent API
- 14. Code Quality and Refactoring