[go: up one dir, main page]

ghost 0.1.13

Define your own PhantomData
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use ghost::phantom;

#[phantom]
struct InvariantPhantom<#[invariant] T>;

fn require_covariant<'a>(phantom: InvariantPhantom<&'static str>) -> InvariantPhantom<&'a str> {
    phantom
}

fn require_contravariant<'a>(phantom: InvariantPhantom<&'a str>) -> InvariantPhantom<&'static str> {
    phantom
}

fn main() {}