According to the documentation, Vec<T> implements Sync if T implements Sync. It seems it's generated automatically by some magic, but I feel this is counter-intuitive since a naive implementation for vectors is not thread-safe.
Is Vec<T> in Rust really Sync?