File: deny_missing_docs.rs

package info (click to toggle)
rust-cxx 1.0.141-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,632 kB
  • sloc: cpp: 1,573; javascript: 124; sh: 11; makefile: 8
file content (94 lines) | stat: -rw-r--r-- 1,894 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// TODO: More work is needed so that the missing_docs lints produced by rustc
// are properly positioned inside of the bridge.

//! ...

#![deny(missing_docs)]

/// ...
#[cxx::bridge]
pub mod ffi {
    pub struct UndocumentedStruct {
        pub undocumented_field: u8,
    }

    /// ...
    pub struct DocumentedStruct {
        /// ...
        pub documented_field: u8,
    }

    pub enum UndocumentedEnum {
        UndocumentedVariant = 0,
    }

    /// ...
    pub enum DocumentedEnum {
        /// ...
        DocumentedVariant = 0,
    }

    extern "Rust" {
        pub type UndocumentedRustType;

        /// ...
        pub type DocumentedRustType;

        pub fn undocumented_rust_fn() -> u8;

        /// ...
        pub fn documented_rust_fn() -> u8;
    }

    unsafe extern "C++" {
        pub type UndocumentedForeignType;

        /// ...
        pub type DocumentedForeignType;

        pub type UndocumentedTypeAlias = crate::bindgen::UndocumentedTypeAlias;

        /// ...
        pub type DocumentedTypeAlias = crate::bindgen::DocumentedTypeAlias;

        pub fn undocumented_foreign_fn() -> u8;

        /// ...
        pub fn documented_foreign_fn() -> u8;
    }

    #[allow(missing_docs)]
    pub struct SuppressUndocumentedStruct {
        pub undocumented_field: u8,
    }
}

struct UndocumentedRustType;
struct DocumentedRustType;

mod bindgen {
    use cxx::{type_id, ExternType};

    pub struct UndocumentedTypeAlias;
    pub struct DocumentedTypeAlias;

    unsafe impl ExternType for UndocumentedTypeAlias {
        type Id = type_id!("UndocumentedTypeAlias");
        type Kind = cxx::kind::Opaque;
    }

    unsafe impl ExternType for DocumentedTypeAlias {
        type Id = type_id!("DocumentedTypeAlias");
        type Kind = cxx::kind::Opaque;
    }
}

fn undocumented_rust_fn() -> u8 {
    0
}

fn documented_rust_fn() -> u8 {
    0
}

fn main() {}