blob: 1ddc8f1f230e123c40df91459dc77f62ce5e92ab [file] [log] [blame]
// Objective-C API for talking to issue12403 Go package.
// gobind -lang=objc issue12403
//
// File is generated by gobind. Do not edit.
#include "GoIssue12403.h"
#include <Foundation/Foundation.h>
#include "seq.h"
static NSString* errDomain = @"go.issue12403";
@protocol goSeqRefInterface
-(GoSeqRef*) _ref;
@end
#define _DESCRIPTOR_ "issue12403"
#define _GO_issue12403_Parsable_DESCRIPTOR_ "go.issue12403.Parsable"
#define _GO_issue12403_Parsable_FromJSON_ (0x10a)
#define _GO_issue12403_Parsable_ToJSON_ (0x20a)
@interface GoIssue12403Parsable : NSObject <GoIssue12403Parsable> {
}
@property(strong, readonly) id _ref;
- (id)initWithRef:(id)ref;
- (NSString*)fromJSON:(NSString*)jstr;
- (BOOL)toJSON:(NSString**)ret0_ error:(NSError**)error;
@end
@implementation GoIssue12403Parsable {
}
- (id)initWithRef:(id)ref {
self = [super init];
if (self) { __ref = ref; }
return self;
}
- (NSString*)fromJSON:(NSString*)jstr {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
go_seq_writeUTF8(&in_, jstr);
go_seq_send(_GO_issue12403_Parsable_DESCRIPTOR_, _GO_issue12403_Parsable_FromJSON_, &in_, &out_);
NSString* ret0_ = go_seq_readUTF8(&out_);
go_seq_free(&in_);
go_seq_free(&out_);
return ret0_;
}
- (BOOL)toJSON:(NSString**)ret0_ error:(NSError**)error {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
go_seq_send(_GO_issue12403_Parsable_DESCRIPTOR_, _GO_issue12403_Parsable_ToJSON_, &in_, &out_);
NSString* ret0__val = go_seq_readUTF8(&out_);
if (ret0_ != NULL) {
*ret0_ = ret0__val;
}
NSString* _error = go_seq_readUTF8(&out_);
if ([_error length] != 0 && error != nil) {
NSMutableDictionary* details = [NSMutableDictionary dictionary];
[details setValue:_error forKey:NSLocalizedDescriptionKey];
*error = [NSError errorWithDomain:errDomain code:1 userInfo:details];
}
go_seq_free(&in_);
go_seq_free(&out_);
return ([_error length] == 0);
}
@end
static void proxyGoIssue12403Parsable(id obj, int code, GoSeq* in, GoSeq* out) {
switch (code) {
case _GO_issue12403_Parsable_FromJSON_: {
id<GoIssue12403Parsable> o = (id<GoIssue12403Parsable>)(obj);
NSString* jstr = go_seq_readUTF8(in);
NSString* returnVal = [o fromJSON:jstr];
go_seq_writeUTF8(out, returnVal);
} break;
case _GO_issue12403_Parsable_ToJSON_: {
id<GoIssue12403Parsable> o = (id<GoIssue12403Parsable>)(obj);
NSString* ret0_;
NSError* error = NULL;
BOOL returnVal = [o toJSON:&ret0_ error:&error];
go_seq_writeUTF8(out, ret0_);
if (returnVal) {
go_seq_writeUTF8(out, NULL);
} else {
NSString* errorDesc = [error localizedDescription];
if (errorDesc == NULL || errorDesc.length == 0) {
errorDesc = @"gobind: unknown error";
}
go_seq_writeUTF8(out, errorDesc);
}
} break;
default:
NSLog(@"unknown code %x for _GO_issue12403_Parsable_DESCRIPTOR_", code);
}
}
__attribute__((constructor)) static void init() {
go_seq_register_proxy("go.issue12403.Parsable", proxyGoIssue12403Parsable);
}