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

#include <android/log.h>
#include <stdint.h>
#include "seq.h"
#include "_cgo_export.h"
#include "issue29559.h"


JNIEXPORT void JNICALL
Java_issue29559_Issue29559__1init(JNIEnv *env, jclass _unused) {
    jclass clazz;
}

JNIEXPORT void JNICALL
Java_issue29559_Issue29559_takesAString(JNIEnv* env, jclass _clazz, jstring s) {
    nstring _s = go_seq_from_java_string(env, s);
    proxyissue29559__TakesAString(_s);
}

