cbindgen
cbindgen copied to clipboard
Panic while building [surfer project](https://surfer-project.org/) bindings
Originating from an issue hit with maturin - https://github.com/PyO3/maturin/issues/2431
While attempting to build the bindings for libsurfer, using cbindgen 0.27.0, with the following config:
language = "C"
no_includes = true
sys_includes = []
defines = {}
include_guard = ""
pragma_once = false
cpp_compat = false
The following panic occurs:
$ cbindgen -c cbindgen.toml -vv
DEBUG: Parsing crate libsurfer
INFO: Take libsurfer::StartupParams - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::MoveDir - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::ColorSpecifier - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CachedDrawData - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CachedWaveDrawData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CachedTransactionDrawData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Channels - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CanvasState - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::StateWrapper - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::NUM_PERF_SAMPLES.
INFO: Take libsurfer::TimingRegion - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Timing - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SCReceiver - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SCSender - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SCHandler - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::GlobalChannelTx - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::GlobalChannelRx - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ClockHighlightType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::RestCommand - opaque (Unsupported type: Type::TraitObject { dyn_token: Some(Dyn), bounds: [TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Fn), arguments: PathArguments::Parenthesized { paren_token: Paren, inputs: [Type::Reference { and_token: And, lifetime: None, mutability: None, elem: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(str), arguments: PathArguments::None }] } } }], output: ReturnType::Type(RArrow, Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Option), arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Command), arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Message), arguments: PathArguments::None }] } })], gt_token: Gt } }] } })], gt_token: Gt } }] } }) } }] } })] }).
INFO: Take libsurfer::CommandPrompt - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SuggestionLabel - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::HierarchyStyle - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::ArrowKeyBindings - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::SurferConfig - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferLayout - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferBehavior - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferGesture - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferLineStyle - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferTicks - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SurferTheme - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ThemeColorPair - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ThemeColorTriple - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::WcpConfig - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Diagnostic - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CxxrtlCommand - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CSMessage - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CxxrtlWorker - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ValueList.
INFO: Take libsurfer::QueryContainer - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CxxrtlSample - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Features - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SimulationStatusType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CxxrtlSimulationStatus - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CommandResponse - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::PauseCause - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Event - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Error - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SCMessage - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CxxrtlTimestamp - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
WARN: Skip libsurfer::DEFAULT_REFERENCE - (not `pub`).
INFO: Take libsurfer::Callback - opaque (Unsupported type: Type::TraitObject { dyn_token: Some(Dyn), bounds: [TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(FnOnce), arguments: PathArguments::Parenthesized { paren_token: Paren, inputs: [Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(CommandResponse), arguments: PathArguments::None }] } }, Comma, Type::Reference { and_token: And, lifetime: None, mutability: Some(Mut), elem: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(CxxrtlData), arguments: PathArguments::None }] } } }], output: ReturnType::Default } }] } }), Plus, TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Sync), arguments: PathArguments::None }] } }), Plus, TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Send), arguments: PathArguments::None }] } })] }).
INFO: Take libsurfer::CxxrtlScope - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CxxrtlItem - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CachedData - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::CxxrtlData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CSSender - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CxxrtlContainer - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DataContainer - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::VariableType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::ReloadWaveformDialog - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
WARN: Skip libsurfer::DEFAULT_DIVIDER_NAME - (not `pub`).
INFO: Take libsurfer::DisplayedItemRef - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedFieldRef - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedItemIndex - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedItem - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::FieldFormat - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedVariable - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedDivider - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedMarker - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedTimeLine - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedPlaceholder - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DisplayedStream - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DrawnRegion - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DrawingCommands - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TxDrawingCommands - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::VariableDrawCommands - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::FileWatcher - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Direction - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Anchor - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::GraphicsY - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::GrPoint - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::GraphicId - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Graphic - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
WARN: Skip libsurfer::EGUI_LOGGER - (not `no_mangle`).
INFO: Take libsurfer::LogMessage - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::EguiLogger - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
WARN: Skip libsurfer::DEFAULT_MARKER_NAME - (Unsupported literal expression. Lit::Str { token: "Marker" })
INFO: Take libsurfer::ButtonBuilder - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CommandCount.
INFO: Take libsurfer::HeaderResult - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::BodyResult - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::AsyncJob - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Message - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::GestureKind - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::HierarchyResponse - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::State - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SystemState - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TimeScale - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TimeUnit - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
WARN: Skip libsurfer::DEFAULT_TIMELINE_NAME - (Unsupported literal expression. Lit::Str { token: "Time" })
WARN: Skip libsurfer::THIN_SPACE - (Unsupported literal expression. Lit::Str { token: "\u{2009}" })
INFO: Take libsurfer::TimeFormat - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TimeStringFormatting - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::TransactionContainer - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::StreamScopeRef - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::TransactionStreamRef - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TransactionRef - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DynTranslator - opaque (Unsupported type: Type::TraitObject { dyn_token: Some(Dyn), bounds: [TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Translator), arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(VarId), arguments: PathArguments::None }] } }), Comma, GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(ScopeId), arguments: PathArguments::None }] } }), Comma, GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Message), arguments: PathArguments::None }] } })], gt_token: Gt } }] } })] }).
INFO: Take libsurfer::DynBasicTranslator - opaque (Unsupported type: Type::TraitObject { dyn_token: Some(Dyn), bounds: [TypeParamBound::Trait(TraitBound { paren_token: None, modifier: TraitBoundModifier::None, lifetimes: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(BasicTranslator), arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(VarId), arguments: PathArguments::None }] } }), Comma, GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(ScopeId), arguments: PathArguments::None }] } })], gt_token: Gt } }] } })] }).
INFO: Take libsurfer::AnyTranslator - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::TranslatorList - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::StringTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::HexTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::BitTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::OctalTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::GroupingBinaryTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::BinaryTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ASCIITranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LebTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::NumberOfOnesTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TrailingOnesTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TrailingZerosTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LeadingOnesTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LeadingZerosTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::IdenticalMSBsTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ClockTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::EnumTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::InstructionTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::UnsignedTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SignedTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SinglePrecisionTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DoublePrecisionTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::QuadPrecisionTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::HalfPrecisionTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::BFloat16Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Posit32Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Posit16Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Posit8Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::PositQuire8Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::PositQuire16Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::E5M2Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::E4M3Translator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::PythonTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SpadeTestInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::SpadeTranslator - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::VariableNameFilterType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::VariableNameType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
WARN: Skip libsurfer::INTEGER_TYPES - (Unsupported type: Type::Slice { bracket_token: Bracket, elem: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(Option), arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident(VariableType), arguments: PathArguments::None }] } })], gt_token: Gt } }] } } })
INFO: Take libsurfer::DrawingContext - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DrawConfig - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::VariableDrawingInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::DividerDrawingInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::MarkerDrawingInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::TimeLineDrawingInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::StreamDrawingInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ItemDrawingInfo - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Relative - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Absolute - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::Viewport - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ViewportStrategy - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::Callback - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::WebHandle - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::on_surfer_error.
INFO: Take libsurfer::new.
INFO: Take libsurfer::stack.
INFO: Take libsurfer::UrlArgs - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::FieldRef.
INFO: Take libsurfer::ScopeRef.
INFO: Take libsurfer::VariableRef.
INFO: Take libsurfer::VariableMeta.
INFO: Take libsurfer::SimulationStatus - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::MetaData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ScopeId - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::VarId - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::QueryResult - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::WaveContainer - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::PER_SCROLL_EVENT.
INFO: Take libsurfer::SCROLL_EVENTS_PER_PAGE.
INFO: Take libsurfer::ScopeType - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WaveData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::CxxrtlKind - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WaveSource - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WaveFormat - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::LoadOptions - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::OpenMode - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::LoadProgress - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LoadProgressStatus - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::DisplayedItemRef - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::ItemInfo - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::WcpResponse - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WcpEvent - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WcpSCMessage - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WcpCommand - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WcpCSMessage - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::WcpServer - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
WARN: Skip libsurfer::UNIQUE_ID_COUNT - (not `no_mangle`).
INFO: Take libsurfer::WellenContainer - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LoadSignalsCmd - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
INFO: Take libsurfer::LoadSignalPayload - opaque (Enum is not marked with a valid #[repr(prim)] or #[repr(C)].).
INFO: Take libsurfer::LoadSignalsResult - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
thread 'main' panicked at /Users/roberttaylor/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cbindgen-0.27.0/src/bindgen/ir/generic_path.rs:112:9:
FieldRef has 0 params but is being instantiated with 2 values
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: <cbindgen::bindgen::ir::typedef::Typedef as cbindgen::bindgen::ir::item::Item>::instantiate_monomorph
3: cbindgen::bindgen::ir::ty::Type::add_monomorphs
4: cbindgen::bindgen::library::Library::generate
5: cbindgen::bindgen::builder::Builder::generate
6: cbindgen::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.