#ifndef EmojicodeList_h
#define EmojicodeList_h
#include "EmojicodeAPI.hpp"
#include "RetainedObjectPointer.hpp"
namespace Emojicode {
struct List {
size_t count;
size_t capacity;
Object *items;
Box* elements() const { return items->val<Box>(); }
};
Box* listAppendDestination(RetainedObjectPointer listObject, Thread *thread);
void listMark(Object *self);
void initListEmptyBridge(Thread *thread);
void initListWithCapacity(Thread *thread);
void listCountBridge(Thread *thread);
void listAppendBridge(Thread *thread);
void listGetBridge(Thread *thread);
void listRemoveBridge(Thread *thread);
void listPopBridge(Thread *thread);
void listInsertBridge(Thread *thread);
void listSort(Thread *thread);
void listFromListBridge(Thread *thread);
void listRemoveAllBridge(Thread *thread);
void listSetBridge(Thread *thread);
void listShuffleInPlaceBridge(Thread *thread);
void listEnsureCapacityBridge(Thread *thread);
}
#endif