light_clone 0.4.1

Compile-time enforcement for O(1) clone operations
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use light_clone::LightClone;

#[derive(Clone, LightClone)]
struct Container<T: Clone + LightClone> {
    value: T,
}

fn main() {
    // String does not implement LightClone, so this should fail
    let _c: Container<String> = Container {
        value: String::from("hello"),
    };
}