etl/docs/tutorials/_index.md
Sergei 27ce9364ec 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 11:01:35 +01:00

70 lines
1.5 KiB
Markdown

---
title: "Tutorials"
weight: 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](./containers-tutorial)
A quick introduction to containers.
---
[Intrusive AVL Tree](./intrusive-avl-tree-tutorial)
Ordering objects that already exist, without a second container.
---
[observer](./observer-tutorial)
A templated set of classes to allow easier implementation of the observer pattern.
---
[visitor](./visitor-tutorial)
A templated set of classes to allow easier implementation of the visitor pattern.
---
[Messages](./message-tutorial)
The messaging framework.
---
[Generators](./generators-tutorial)
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`
---