I found the definition for std::borrow::BorrowMut
:
pub trait BorrowMut<Borrowed>: Borrow<Borrowed>
where
Borrowed: ?Sized,
{
fn borrow_mut(&mut self) -> &mut Borrowed;
}
What does the question mark in front of Sized
mean in this type parameter bound (Borrowed: ?Sized
)?
I consulted:
- The Rust Programming Language¹ book,
- The Rust Reference², and also
- What does "Sized is not implemented" mean? on Stack Overflow
but didn't find an explanation. Please give a reference in your answer.
¹ especially see section 5.20 Traits
² and section 6.1.9 Traits