Update doc

This commit is contained in:
Patrick Pelissier committed 2025-06-10 22:15:34 +02:00
1 parent a9dc2eef12
commit ea3c2c5019
1 file changed
+18 -2
+18 -2
View File
@@ -139,8 +139,8 @@ You can read or write your full and complex data structure into [JSON](https://e
M\*LIB is distributed under BSD-2 simplified license.
It is strongly advised not to read the source to know how to use the library
as the code is quite complex and uses a lot of tricks
but rather read the examples.
as the code is quite complex and uses a lot of tricks.
You should rather read the examples.
In this documentation,
* _shall_ will be used to indicate a user constraint that is
@@ -149,6 +149,22 @@ mandatory to follow under penalty of undefined behavior.
All pointers expected by the functions of the library shall expect non-null argument except if indicated.
## Key points
* Genericity Mechanism through code generation by macro-base approaches while keeping code size reasonable,
* Minimum supported C Standard is C99,
* Header only library (easier to integrate),
* Performance: M\*LIB is highly optimized wut =h Minimal Runtime Overheader in Release mode,
* Type Safety: Compiler catches type mismatches.
* Runtime errors: Assertion are enabled in Debug mode and check for contract violiation and runtime errors are enabled for robustness in debug mode,
* High focus on homogeneous API design and ease of use,
* Near 100% coverage in instruction and decision by the test suite,
* Actively maintained library,
* Can be used fully without any macro usage outside of its code generation section,
* Provide all the standard containers (vectors, lists, hash maps, sets, queues, etc.) and algorithms (sort, search) and even more,
* Fully custimisable memory allocator,
* Can use _Generic keyword for uniform usage of the operators on any registered type.
## Components
The following headers define containers that don't require the user structure to be modified: