# Summary

- [Welcome](01_intro/00_welcome.md)
  - [Syntax](01_intro/01_syntax.md)

- [A Basic Calculator](02_basic_calculator/00_intro.md)
  - [Integers](02_basic_calculator/01_integers.md)
  - [Variables](02_basic_calculator/02_variables.md)
  - [Branching: `if`/`else`](02_basic_calculator/03_if_else.md)
  - [Panics](02_basic_calculator/04_panics.md)
  - [Factorial](02_basic_calculator/05_factorial.md)
  - [Loops: `while`](02_basic_calculator/06_while.md)
  - [Loops: `for`](02_basic_calculator/07_for.md)
  - [Overflow and underflow](02_basic_calculator/08_overflow.md)
  - [Saturating arithmetic](02_basic_calculator/09_saturating.md)
  - [Conversions: `as` casting](02_basic_calculator/10_as_casting.md)

- [Ticket v1](03_ticket_v1/00_intro.md)
  - [Structs](03_ticket_v1/01_struct.md)
  - [Validation](03_ticket_v1/02_validation.md)
  - [Modules](03_ticket_v1/03_modules.md)
  - [Visibility](03_ticket_v1/04_visibility.md)
  - [Encapsulation](03_ticket_v1/05_encapsulation.md)
  - [Ownership](03_ticket_v1/06_ownership.md)
  - [Setters](03_ticket_v1/07_setters.md)
  - [Stack](03_ticket_v1/08_stack.md)
  - [Heap](03_ticket_v1/09_heap.md)
  - [References in memory](03_ticket_v1/10_references_in_memory.md)
  - [Destructors](03_ticket_v1/11_destructor.md)
  - [Outro](03_ticket_v1/12_outro.md)

- [Traits](04_traits/00_intro.md)
  - [Trait](04_traits/01_trait.md)
  - [Orphan rule](04_traits/02_orphan_rule.md)
  - [Operator overloading](04_traits/03_operator_overloading.md)
  - [Derive macros](04_traits/04_derive.md)
  - [Trait bounds](04_traits/05_trait_bounds.md)
  - [String slices](04_traits/06_str_slice.md)
  - [`Deref` trait](04_traits/07_deref.md)
  - [`Sized` trait](04_traits/08_sized.md)
  - [`From` trait](04_traits/09_from.md)
  - [Associated vs generic types](04_traits/10_assoc_vs_generic.md)
  - [`Clone` trait](04_traits/11_clone.md)
  - [`Copy` trait](04_traits/12_copy.md)
  - [`Drop` trait](04_traits/13_drop.md)
  - [Outro](04_traits/14_outro.md)

- [Ticket v2](05_ticket_v2/00_intro.md)
  - [Enums](05_ticket_v2/01_enum.md)
  - [Branching: `match`](05_ticket_v2/02_match.md)
  - [Variants with data](05_ticket_v2/03_variants_with_data.md)
  - [Branching: `if let` and `let/else`](05_ticket_v2/04_if_let.md)
  - [Nullability](05_ticket_v2/05_nullability.md)
  - [Fallibility](05_ticket_v2/06_fallibility.md)
  - [Unwrap](05_ticket_v2/07_unwrap.md)
  - [Error enums](05_ticket_v2/08_error_enums.md)
  - [`Error` trait](05_ticket_v2/09_error_trait.md)
  - [Packages](05_ticket_v2/10_packages.md)
  - [Dependencies](05_ticket_v2/11_dependencies.md)
  - [`thiserror`](05_ticket_v2/12_thiserror.md)
  - [`TryFrom` trait](05_ticket_v2/13_try_from.md)
  - [`Error::source`](05_ticket_v2/14_source.md)
  - [Outro](05_ticket_v2/15_outro.md)

- [Ticket Management](06_ticket_management/00_intro.md)
  - [Arrays](06_ticket_management/01_arrays.md)
  - [Vectors](06_ticket_management/02_vec.md)
  - [Resizing](06_ticket_management/03_resizing.md)
  - [Iterators](06_ticket_management/04_iterators.md)
  - [Iter](06_ticket_management/05_iter.md)
  - [Lifetimes](06_ticket_management/06_lifetimes.md)
  - [Combinators](06_ticket_management/07_combinators.md)
  - [`impl Trait`](06_ticket_management/08_impl_trait.md)
  - [`impl Trait`, pt.2](06_ticket_management/09_impl_trait_2.md)
  - [Slices](06_ticket_management/10_slices.md)
  - [Mutable slices](06_ticket_management/11_mutable_slices.md)
  - [Two states](06_ticket_management/12_two_states.md)
  - [`Index` trait](06_ticket_management/13_index.md)
  - [`IndexMut` trait](06_ticket_management/14_index_mut.md)
  - [`HashMap`](06_ticket_management/15_hashmap.md)
  - [`BTreeMap`](06_ticket_management/16_btreemap.md)

- [Threads](07_threads/00_intro.md)
  - [Threads](07_threads/01_threads.md)
  - [`'static` lifetime](07_threads/02_static.md)
  - [Leaking memory](07_threads/03_leak.md)
  - [Scoped threads](07_threads/04_scoped_threads.md)
  - [Channels](07_threads/05_channels.md)
  - [Interior mutability](07_threads/06_interior_mutability.md)
  - [Ack pattern](07_threads/07_ack.md)
  - [Client](07_threads/08_client.md)
  - [Bounded channels](07_threads/09_bounded.md)
  - [Patching](07_threads/10_patch.md)
  - [`Mutex`, `Send` and `Arc`](07_threads/11_locks.md)
  - [`RwLock`](07_threads/12_rw_lock.md)
  - [Without channels](07_threads/13_without_channels.md)
  - [`Sync` trait](07_threads/14_sync.md)

- [Futures](08_futures/00_intro.md)
  - [Asynchronous functions](08_futures/01_async_fn.md)
  - [Spawning tasks](08_futures/02_spawn.md)
  - [Runtime](08_futures/03_runtime.md)
  - [Future trait](08_futures/04_future.md)
  - [Blocking the runtime](08_futures/05_blocking.md)
  - [Async-aware primitives](08_futures/06_async_aware_primitives.md)
  - [Cancellation](08_futures/07_cancellation.md)
  - [Outro](08_futures/08_outro.md)

* [Going further](going_further.md)
