It would be great to have some sort of .get_source() getter method on struct errors.
This would make it easier to get the source of the error without having to go through down casting Error::source() when the type is statically known
Technically you could just set the source field as public, but you could forget it