crate_interface
Provides a way to define an interface (trait) in a crate, but can implement or use it in any crate. It 's usually used to solve the problem of circular dependencies between crates.
Example
// Define the interface
// Implement the interface in any crate
;
// Call `HelloIfImpl::hello` in any crate
use call_interface;
assert_eq!;
assert_eq!;