#define SWIFT_NAME(X) __attribute__((swift_name(#X))) #ifndef SWIFT_ENUM_EXTRA # define SWIFT_ENUM_EXTRA #endif #ifndef SWIFT_ENUM # define SWIFT_ENUM(_type, _name) \ enum _name : _type _name; \ enum SWIFT_ENUM_EXTRA _name : _type #endif // Renaming global variables. int SNFoo SWIFT_NAME(Bar); // Renaming tags and fields. struct SWIFT_NAME(SomeStruct) SNSomeStruct { double X SWIFT_NAME(x); }; // Renaming C functions struct SNSomeStruct SNMakeSomeStruct(double X, double Y) SWIFT_NAME(makeSomeStruct(x:y:)); struct SNSomeStruct SNMakeSomeStructForX(double X) SWIFT_NAME(makeSomeStruct(x:)); // Renaming typedefs. typedef int SNIntegerType SWIFT_NAME(MyInt); // Renaming enumerations. SWIFT_ENUM(unsigned char, SNColorChoice) { SNColorRed SWIFT_NAME(Rouge), SNColorGreen, SNColorBlue }; // swift_private attribute void SNTransposeInPlace(struct SNSomeStruct *value) __attribute__((swift_private)); typedef struct { double x, y, z; } SNPoint SWIFT_NAME(Point); // Importing a value into a member. extern double DefaultXValue __attribute__((swift_name("SomeStruct.defaultX"))); // Importing a function as a method. struct SNSomeStruct SNAdding(struct SNSomeStruct *value, double x) SWIFT_NAME(SomeStruct.adding(self:x:)); // Importing a function as an initializer. struct SNSomeStruct SNCreate(double x) SWIFT_NAME(SomeStruct.init(theX:)); // Importing a function as a static property getter. struct SNSomeStruct SNSomeStructGetDefault(void) SWIFT_NAME(getter:SomeStruct.defaultValue()); // Importing a function as a static property setter. void SNSomeStructSetDefault(struct SNSomeStruct value) SWIFT_NAME(setter:SomeStruct.defaultValue(_:)); // Importing a function as an instance property getter. double SNSomeStructGetFoo(struct SNSomeStruct s) SWIFT_NAME(getter:SomeStruct.foo(self:)); // Importing a function as an instance property setter. void SNSomeStructSetFoo(struct SNSomeStruct s, double value) SWIFT_NAME(setter:SomeStruct.foo(self:_:));