| /** |
| * This module contains UDA's (User Defined Attributes) either used in |
| * the runtime or special UDA's recognized by compiler. |
| * |
| * Copyright: Copyright Jacob Carlborg 2015. |
| * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) |
| * Authors: Jacob Carlborg |
| * Source: $(DRUNTIMESRC core/_attribute.d) |
| */ |
| |
| /* Copyright Jacob Carlborg 2015. |
| * Distributed under the Boost Software License, Version 1.0. |
| * (See accompanying file LICENSE or copy at |
| * http://www.boost.org/LICENSE_1_0.txt) |
| */ |
| module core.attribute; |
| |
| /** |
| * Use this attribute to attach an Objective-C selector to a method. |
| * |
| * This is a special compiler recognized attribute, it has several |
| * requirements, which all will be enforced by the compiler: |
| * |
| * $(UL |
| * $(LI |
| * The attribute can only be attached to methods or constructors which |
| * have Objective-C linkage. That is, a method or a constructor in a |
| * class or interface declared as $(D_CODE extern(Objective-C)). |
| * ), |
| * |
| * $(LI It cannot be attached to a method or constructor that is a template), |
| * |
| * $(LI |
| * The number of colons in the string need to match the number of |
| * arguments the method accept. |
| * ), |
| * |
| * $(LI It can only be used once in a method declaration) |
| * ) |
| * |
| * Examples: |
| * --- |
| * extern (Objective-C) |
| * class NSObject |
| * { |
| * this() @selector("init"); |
| * static NSObject alloc() @selector("alloc"); |
| * NSObject initWithUTF8String(in char* str) @selector("initWithUTF8String:"); |
| * ObjcObject copyScriptingValue(ObjcObject value, NSString key, NSDictionary properties) |
| * @selector("copyScriptingValue:forKey:withProperties:"); |
| * } |
| * --- |
| */ |
| version (D_ObjectiveC) struct selector |
| { |
| string selector; |
| } |