Mutable indexing
Index
allows read-only access. It doesn't let you mutate the value you
retrieved.
IndexMut
If you want to allow mutability, you need to implement the IndexMut
trait.
// Slightly simplified
pub trait IndexMut<Idx>: Index<Idx>
{
// Required method
fn index_mut(&mut self, index: Idx) -> &mut Self::Output;
}
IndexMut
can only be implemented if the type already implements Index
,
since it unlocks an additional capability.
Exercise
The exercise for this section is located in 06_ticket_management/14_index_mut