// 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() {}