A trait object in Rust can only be
constructed out of traits that satisfy certain restrictions, which are
collectively called “object safety”. This object safety can appear to
be a needless restriction at first, I’ll try to give a deeper
understanding into why it exists and related compiler behaviour.