provide 0.0.1

Truly zero cost dependency injection
Documentation
use provide::with::{ProvideMutWith, ProvideRefWith, ProvideWith};

#[test]
fn by_value() {
    let provider = 1;
    let (dependency, _): (i32, _) = provider.provide_with(());
    assert_eq!(dependency, 1);
}

#[test]
fn by_ref() {
    let provider = "hello";
    let dependency: &str = provider.provide_ref_with(());
    assert_eq!(dependency, "hello");
}

#[test]
fn by_mut() {
    let mut provider = [1, 2, 3, 4, 5];
    let dependency = provider.provide_mut_with(());
    assert_eq!(dependency, &mut [1, 2, 3, 4, 5]);
}