summaryrefslogtreecommitdiffstats
path: root/third_party/rust/uniffi/tests/ui/proc_macro_arc.rs
blob: 9db33765945b8d53d3e7d611b8ed75a721d99618 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::sync::Arc;

fn main() {}

// Normally this is defined by the scaffolding code, manually define it for the UI test
pub struct UniFfiTag;

pub struct Foo;

#[uniffi::export]
fn make_foo() -> Arc<Foo> {
    Arc::new(Foo)
}

mod child {
    use std::sync::Arc;

    enum Foo {}

    #[uniffi::export]
    fn take_foo(foo: Arc<Foo>) {
        match &*foo {}
    }
}