#pragma once #include "binaryninjaapi.h" class RustTypePrinter: public BinaryNinja::TypePrinter { void AppendCallingConventionTokens(BinaryNinja::Type* type, BinaryNinja::Platform* platform, uint8_t baseConfidence, std::vector& tokens); void GetStructureMemberTokens(BinaryNinja::Platform* platform, BinaryNinja::Type* type, uint8_t baseConfidence, BNTokenEscapingType escaping, std::vector& out); public: RustTypePrinter(); std::vector GetTypeTokensBeforeName( BinaryNinja::Ref type, BinaryNinja::Ref platform, uint8_t baseConfidence = BN_FULL_CONFIDENCE, BinaryNinja::Ref parentType = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType) override; std::vector GetTypeTokensAfterName( BinaryNinja::Ref type, BinaryNinja::Ref platform, uint8_t baseConfidence = BN_FULL_CONFIDENCE, BinaryNinja::Ref parentType = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType) override; std::vector GetTypeLines( BinaryNinja::Ref type, const BinaryNinja::TypeContainer& types, const BinaryNinja::QualifiedName& name, int paddingCols = 64, bool collapsed = false, BNTokenEscapingType escaping = NoTokenEscapingType) override; std::vector GetTypeTokensAfterNameInternal( BinaryNinja::Ref type, BinaryNinja::Ref platform, uint8_t baseConfidence = BN_FULL_CONFIDENCE, BinaryNinja::Ref parentType = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType, bool functionHeader = false); };