| // Objective-C API for talking to structs Go package. |
| // gobind -lang=objc structs |
| // |
| // File is generated by gobind. Do not edit. |
| |
| #include "GoStructs.h" |
| #include <Foundation/Foundation.h> |
| #include "seq.h" |
| |
| static NSString* errDomain = @"go.structs"; |
| |
| @protocol goSeqRefInterface |
| -(GoSeqRef*) _ref; |
| @end |
| |
| #define _DESCRIPTOR_ "structs" |
| |
| #define _GO_structs_S_DESCRIPTOR_ "go.structs.S" |
| #define _GO_structs_S_FIELD_X_GET_ (0x00f) |
| #define _GO_structs_S_FIELD_X_SET_ (0x01f) |
| #define _GO_structs_S_FIELD_Y_GET_ (0x10f) |
| #define _GO_structs_S_FIELD_Y_SET_ (0x11f) |
| #define _GO_structs_S_Identity_ (0x00c) |
| #define _GO_structs_S_Sum_ (0x10c) |
| |
| @implementation GoStructsS { |
| } |
| |
| - (id)initWithRef:(id)ref { |
| self = [super init]; |
| if (self) { __ref = ref; } |
| return self; |
| } |
| |
| - (double)x { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_FIELD_X_GET_, &in_, &out_); |
| double ret_ = go_seq_readFloat64(&out_); |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| return ret_; |
| } |
| |
| - (void)setX:(double)v { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_writeFloat64(&in_, v); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_FIELD_X_SET_, &in_, &out_); |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| } |
| |
| - (double)y { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_FIELD_Y_GET_, &in_, &out_); |
| double ret_ = go_seq_readFloat64(&out_); |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| return ret_; |
| } |
| |
| - (void)setY:(double)v { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_writeFloat64(&in_, v); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_FIELD_Y_SET_, &in_, &out_); |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| } |
| |
| - (BOOL)identity:(GoStructsS**)ret0_ error:(NSError**)error { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_Identity_, &in_, &out_); |
| GoSeqRef* ret0__ref = go_seq_readRef(&out_); |
| if (ret0_ != NULL) { |
| *ret0_ = ret0__ref.obj; |
| if (*ret0_ == NULL) { |
| *ret0_ = [[GoStructsS alloc] initWithRef:ret0__ref]; |
| } |
| } |
| 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); |
| } |
| |
| - (double)sum { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| go_seq_writeRef(&in_, self._ref); |
| go_seq_send(_GO_structs_S_DESCRIPTOR_, _GO_structs_S_Sum_, &in_, &out_); |
| double ret0_ = go_seq_readFloat64(&out_); |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| return ret0_; |
| } |
| |
| @end |
| |
| #define _CALL_Identity_ 1 |
| #define _CALL_IdentityWithError_ 2 |
| |
| GoStructsS* GoStructsIdentity(GoStructsS* s) { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| if ([(id<NSObject>)(s) isKindOfClass:[GoStructsS class]]) { |
| id<goSeqRefInterface> s_proxy = (id<goSeqRefInterface>)(s); |
| go_seq_writeRef(&in_, s_proxy._ref); |
| } else { |
| go_seq_writeObjcRef(&in_, s); |
| } |
| go_seq_send(_DESCRIPTOR_, _CALL_Identity_, &in_, &out_); |
| GoSeqRef* ret0__ref = go_seq_readRef(&out_); |
| GoStructsS* ret0_ = ret0__ref.obj; |
| if (ret0_ == NULL) { |
| ret0_ = [[GoStructsS alloc] initWithRef:ret0__ref]; |
| } |
| go_seq_free(&in_); |
| go_seq_free(&out_); |
| return ret0_; |
| } |
| |
| BOOL GoStructsIdentityWithError(GoStructsS* s, GoStructsS** ret0_, NSError** error) { |
| GoSeq in_ = {}; |
| GoSeq out_ = {}; |
| if ([(id<NSObject>)(s) isKindOfClass:[GoStructsS class]]) { |
| id<goSeqRefInterface> s_proxy = (id<goSeqRefInterface>)(s); |
| go_seq_writeRef(&in_, s_proxy._ref); |
| } else { |
| go_seq_writeObjcRef(&in_, s); |
| } |
| go_seq_send(_DESCRIPTOR_, _CALL_IdentityWithError_, &in_, &out_); |
| GoSeqRef* ret0__ref = go_seq_readRef(&out_); |
| if (ret0_ != NULL) { |
| *ret0_ = ret0__ref.obj; |
| if (*ret0_ == NULL) { |
| *ret0_ = [[GoStructsS alloc] initWithRef:ret0__ref]; |
| } |
| } |
| 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); |
| } |
| |