/// A struct declaration in an FFI module that is not opaque. #[derive(Clone, PartialEq, Eq, Hash, Serialize, Debug)] #[non_exhaustive] pubstructStruct { pub name: Ident, pub docs: Docs, pub lifetimes: LifetimeEnv, pub fields: Vec<(Ident, TypeName, Docs)>, pub methods: Vec<Method>, pub output_only: bool, pub attrs: Attrs,
}
implStruct { /// Extract a [`Struct`] metadata value from an AST node. pubfn new(strct: &syn::ItemStruct, output_only: bool, parent_attrs: &Attrs) -> Self { let self_path_type = PathType::extract_self_type(strct); let fields: Vec<_> = strct
.fields
.iter()
.map(|field| { // Non-opaque tuple structs will never be allowed let name = field
.ident
.as_ref()
.map(Into::into)
.expect("non-opaque tuples structs are disallowed"); let type_name = TypeName::from_syn(&field.ty, Some(self_path_type.clone())); let docs = Docs::from_attrs(&field.attrs);
/// A struct annotated with [`diplomat::opaque`] whose fields are not visible. /// Opaque structs cannot be passed by-value across the FFI boundary, so they /// must be boxed or passed as references. #[derive(Clone, Serialize, Debug, Hash, PartialEq, Eq)] #[non_exhaustive] pubstruct OpaqueStruct { pub name: Ident, pub docs: Docs, pub lifetimes: LifetimeEnv, pub methods: Vec<Method>, pub mutability: Mutability, pub attrs: Attrs,
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.