Use caret requirements instead of tilde requirements

Supposing that cargos use the semantic versioning, caret requirements(^) is the
perfect default option to show since tilde requirements(~) can be somewhat
unnecessarily strict

Reference: https://github.com/rust-lang/semver#requirements