// JNI function headers for the Go <=> Java bridge.
//   gobind -lang=java structs
//
// File is generated by gobind. Do not edit.

#ifndef __Structs_H__
#define __Structs_H__

#include <jni.h>

extern jclass proxy_class_structs_I;
extern jmethodID proxy_class_structs_I_cons;

void cproxystructs_I_M(int32_t refnum);

extern jclass proxy_class_structs_S;
extern jmethodID proxy_class_structs_S_cons;
extern jclass proxy_class_structs_S2;
extern jmethodID proxy_class_structs_S2_cons;
#endif
