lldb-sys 0.0.13

Raw bindings to the LLDB C++ API. LLDB is the debugger that is part of the LLVM project and is the default system debugger on Mac OS X. Building and using this is currently slightly tricky, so be sure to see the README.md in the repository.
//===-- SBTypeEnumMemberBinding.cpp -----------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#include "lldb/Bindings/LLDBBinding.h"
#include "lldb/API/LLDB.h"
#include "lldb/API/SBTypeEnumMember.h"

using namespace lldb;

#ifdef __cplusplus
extern "C" {
#endif

SBTypeEnumMemberRef
CreateSBTypeEnumMember()
{
    return reinterpret_cast<SBTypeEnumMemberRef>(new SBTypeEnumMember());
}

void
DisposeSBTypeEnumMember(SBTypeEnumMemberRef instance)
{
    delete reinterpret_cast<SBTypeEnumMember *>(instance);
}

bool
SBTypeEnumMemberIsValid(SBTypeEnumMemberRef instance)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return unwrapped->IsValid();
}

long long
SBTypeEnumMemberGetValueAsSigned(SBTypeEnumMemberRef instance)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return unwrapped->GetValueAsSigned();
}

unsigned long long
SBTypeEnumMemberGetValueAsUnsigned(SBTypeEnumMemberRef instance)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return unwrapped->GetValueAsUnsigned();
}

const char *
SBTypeEnumMemberGetName(SBTypeEnumMemberRef instance)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return unwrapped->GetName();
}

SBTypeRef
SBTypeEnumMemberGetType(SBTypeEnumMemberRef instance)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return reinterpret_cast<SBTypeRef>(new SBType(unwrapped->GetType()));
}

bool
SBTypeEnumMemberGetDescription(SBTypeEnumMemberRef instance, SBStreamRef description,
                                   lldb::DescriptionLevel description_level)
{
    SBTypeEnumMember *unwrapped = reinterpret_cast<SBTypeEnumMember *>(instance);
    return unwrapped->GetDescription(*reinterpret_cast<SBStream *>(description), description_level);
}

SBTypeEnumMemberListRef
CreateSBTypeEnumMemberList()
{
    return reinterpret_cast<SBTypeEnumMemberListRef>(new SBTypeEnumMemberList());
}

void
DisposeSBTypeEnumMemberList(SBTypeEnumMemberListRef instance)
{
    delete reinterpret_cast<SBTypeEnumMemberList *>(instance);
}

bool
SBTypeEnumMemberListIsValid(SBTypeEnumMemberListRef instance)
{
    SBTypeEnumMemberList *unwrapped = reinterpret_cast<SBTypeEnumMemberList *>(instance);
    return unwrapped->IsValid();
}

void
SBTypeEnumMemberListAppend(SBTypeEnumMemberListRef instance, SBTypeEnumMemberRef entry)
{
    SBTypeEnumMemberList *unwrapped = reinterpret_cast<SBTypeEnumMemberList *>(instance);
    unwrapped->Append(*reinterpret_cast<SBTypeEnumMember *>(entry));
}

SBTypeEnumMemberRef
SBTypeEnumMemberListGetTypeEnumMemberAtIndex(SBTypeEnumMemberListRef instance, uint32_t index)
{
    SBTypeEnumMemberList *unwrapped = reinterpret_cast<SBTypeEnumMemberList *>(instance);
    return reinterpret_cast<SBTypeEnumMemberRef>(new SBTypeEnumMember(unwrapped->GetTypeEnumMemberAtIndex(index)));
}

unsigned int
SBTypeEnumMemberListGetSize(SBTypeEnumMemberListRef instance)
{
    SBTypeEnumMemberList *unwrapped = reinterpret_cast<SBTypeEnumMemberList *>(instance);
    return unwrapped->GetSize();
}

#ifdef __cplusplus
}
#endif