#pragma once

#include "il2cpp-config.h"

#ifndef _MSC_VER
# include <alloca.h>
#else
# include <malloc.h>
#endif

#include <stdint.h>
#include <assert.h>
#include <exception>

// UnityEngine.Coroutine
struct Coroutine_t3621161934;
struct Coroutine_t3621161934_marshaled_pinvoke;
struct Coroutine_t3621161934_marshaled_com;

#include "codegen/il2cpp-codegen.h"

// System.Void UnityEngine.Coroutine::.ctor()
extern "C"  void Coroutine__ctor_m3143611649 (Coroutine_t3621161934 * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Void UnityEngine.Coroutine::ReleaseCoroutine()
extern "C"  void Coroutine_ReleaseCoroutine_m3084231540 (Coroutine_t3621161934 * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Void UnityEngine.Coroutine::Finalize()
extern "C"  void Coroutine_Finalize_m3970219969 (Coroutine_t3621161934 * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;

// Methods for marshaling
struct Coroutine_t3621161934;
struct Coroutine_t3621161934_marshaled_pinvoke;

extern "C" void Coroutine_t3621161934_marshal_pinvoke(const Coroutine_t3621161934& unmarshaled, Coroutine_t3621161934_marshaled_pinvoke& marshaled);
extern "C" void Coroutine_t3621161934_marshal_pinvoke_back(const Coroutine_t3621161934_marshaled_pinvoke& marshaled, Coroutine_t3621161934& unmarshaled);
extern "C" void Coroutine_t3621161934_marshal_pinvoke_cleanup(Coroutine_t3621161934_marshaled_pinvoke& marshaled);

// Methods for marshaling
struct Coroutine_t3621161934;
struct Coroutine_t3621161934_marshaled_com;

extern "C" void Coroutine_t3621161934_marshal_com(const Coroutine_t3621161934& unmarshaled, Coroutine_t3621161934_marshaled_com& marshaled);
extern "C" void Coroutine_t3621161934_marshal_com_back(const Coroutine_t3621161934_marshaled_com& marshaled, Coroutine_t3621161934& unmarshaled);
extern "C" void Coroutine_t3621161934_marshal_com_cleanup(Coroutine_t3621161934_marshaled_com& marshaled);
