etl/docs/tutorials/_index.md
Sergei c313e6b98c
Add docs and tutorial for etl::intrusive_avl_tree (#1608)
* Add docs and tutorial for etl::intrusive_avl_tree

Documents the intrusive AVL tree added in PR #1425: a full API reference
page under Containers/Trees, and a tutorial demonstrating ordered access
to intrusively-linked objects with unpredictable lifetimes, including
move support and destructor-driven automatic removal from the tree.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Add complexity shortcode and document its usage

Introduces a {{< complexity >}} Hugo shortcode (with light/dark styling
for constant/logarithmic/linear/linearithmic/polynomial/exponential
classes) for rendering Big-O complexity inline, applies it throughout
the intrusive_avl_tree API reference in place of raw "O(...)" text, and
documents the Description/Complexity structure and supported classes in
DOCUMENTATION.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Fix issues found by @CodeRabbit

* Put complexity notes on their own lines in intrusive_avl_tree docs

Move the complexity shortcode from the inline "**Complexity:**" label
to its own line under a "**Complexity**" label. Notes that give several
alternatives (e.g. amortized vs. worst-case) now show each one on a
separate line. Update the guideline in DOCUMENTATION.md to match.

* Update complexity examples in DOCUMENTATION.md

Add the hard line break after the "**Complexity**" label in the
example, and rewrite the list of supported complexity classes in the
new two-line format, including an example with several alternatives.

* Add logarithmic complexity example to DOCUMENTATION.md

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2026-09-27 09:42:34 +01:00

1.5 KiB

title weight
Tutorials 2001

I've created a set of tutorials to help you get to know the library better.
If there is an aspect of the library that you find difficult to use or understand then let me know and I'll try to put together some examples of how to use it, and even why you should use it.


Containers
A quick introduction to containers.


Intrusive AVL Tree
Ordering objects that already exist, without a second container.


observer
A templated set of classes to allow easier implementation of the observer pattern.


visitor
A templated set of classes to allow easier implementation of the visitor pattern.


Messages
The messaging framework.


Generators
Generators create parts of the ETL code based on user requirements.


Concurrent Queues
A set of concurrent queues, both Single Producer / Single Consumer (SPSC) and Muli Producer / Multi Consumer (MPMC)


callback_service
This code demonstrates using the callback service for five example ARM interrupts.


delegate_service
This code demonstrates using the delegate service for five example ARM interrupts.


shared_message
How to use shared messages with the ETL messaging framework.


Locked Queues
How the locked queues differ from each other.


etl::unique_ptr with etl::pool
Using an etl::unique_ptr with etl::pool