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. 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 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 as the code is quite complex and uses a lot of tricks.
but rather read the examples. You should rather read the examples.
In this documentation, In this documentation,
* _shall_ will be used to indicate a user constraint that is * _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. 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 ## Components
The following headers define containers that don't require the user structure to be modified: The following headers define containers that don't require the user structure to be modified: