// Objective-C API for talking to structs Go package.
//   gobind -lang=objc structs
//
// File is generated by gobind. Do not edit.

#ifndef __Structs_H__
#define __Structs_H__

@import Foundation;
#include "ref.h"
#include "Universe.objc.h"


@class StructsS;
@class StructsS2;
@class StructsStructs;
@protocol StructsI;
@class StructsI;

@protocol StructsI <NSObject>
- (void)m;
@end

@interface StructsS : NSObject <goSeqRefInterface> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
@property (nonatomic) double x;
@property (nonatomic) double y;
- (StructsS* _Nullable)identity:(NSError* _Nullable* _Nullable)error;
- (double)sum;
@end

@interface StructsS2 : NSObject <goSeqRefInterface, StructsI> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
- (void)m;
- (NSString* _Nonnull)string;
@end

/**
 * Structs is a struct with the same name as its package.
 */
@interface StructsStructs : NSObject <goSeqRefInterface, StructsI> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (nonnull instancetype)init;
- (void)m;
@end

FOUNDATION_EXPORT StructsS* _Nullable StructsIdentity(StructsS* _Nullable s);

FOUNDATION_EXPORT StructsS* _Nullable StructsIdentityWithError(StructsS* _Nullable s, NSError* _Nullable* _Nullable error);

@class StructsI;

@interface StructsI : NSObject <goSeqRefInterface, StructsI> {
}
@property(strong, readonly) _Nonnull id _ref;

- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (void)m;
@end

#endif
