#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>

// System.Text.RegularExpressions.PatternCompiler/PatternLinkStack/Link
struct Link_t396179390;
struct Link_t396179390_marshaled_pinvoke;
struct Link_t396179390_marshaled_com;

#include "codegen/il2cpp-codegen.h"


// Methods for marshaling
struct Link_t396179390;
struct Link_t396179390_marshaled_pinvoke;

extern "C" void Link_t396179390_marshal_pinvoke(const Link_t396179390& unmarshaled, Link_t396179390_marshaled_pinvoke& marshaled);
extern "C" void Link_t396179390_marshal_pinvoke_back(const Link_t396179390_marshaled_pinvoke& marshaled, Link_t396179390& unmarshaled);
extern "C" void Link_t396179390_marshal_pinvoke_cleanup(Link_t396179390_marshaled_pinvoke& marshaled);

// Methods for marshaling
struct Link_t396179390;
struct Link_t396179390_marshaled_com;

extern "C" void Link_t396179390_marshal_com(const Link_t396179390& unmarshaled, Link_t396179390_marshaled_com& marshaled);
extern "C" void Link_t396179390_marshal_com_back(const Link_t396179390_marshaled_com& marshaled, Link_t396179390& unmarshaled);
extern "C" void Link_t396179390_marshal_com_cleanup(Link_t396179390_marshaled_com& marshaled);
