Standard Aspects
Elements comes with a set of predefined aspects that are used to expose language features without introducing new keywords to the language. All these aspects can be used directly by using them as an attribute.
Some of these aspects have an equivalent language-level syntax in some of the languages and are only provided to bring the same feature to the others (but can be used on all languages for consistency, if so desired). Others are available via the aspect only.
Regardless of intended use, all these aspects can be used in all languages.
Aspects that Expose Features of a specific Language to All Languages
Aspects Provided for Compatibility with Apple Swift
autoclosure
discardableResult
andwarn_unused_result
(See alsoWarnUnusedResult
)inline
noescape
nonobjc
– ignorednoreturn
(See alsoNoReturn
)objc
Required
PropertyWrapper
Aspects that Bring .NET Functionality Cross-Platform
Conditional
DllExport
(Island)Obsolete
Aspects Specific to .NET
Aspects Specific to Cocoa
BlockPointer
DynamicProperty
FunctionPointer
IBObject
,IBOutlet
andIBAction
LinkOnce
NSApplicationMain
andUIApplicationMain
Packed
ReturnsRetained
andReturnsUnretained
Union
Aspects Specific to Island
CallingConvention
COM
Export
External
DllExport
DllImport
&DelayLoadDllImport
DynamicInterface
Guid
Island
,Cocoa
,Swift
andDelphi
Object ModelsJNIExport
Published
SymbolName
Used
DefaultObjectLifetimeStrategy
,LifetimeStrategyOverride
andGCSkipIfOnStack
Aspects for Elements RTL and Cross-Platform Code
Other Useful Aspects
Error
,Warning
,Hint
andMessage
Implements
Mangle
Obfuscate
SwiftName
andNonSwiftName
ExposesEvents
andHandles
Deprecated or Undocumented Aspects
Category
(use Extension Types, instead)Extension
(use Extension Types, instead)