//===--- Mirrors.swift.gyb - Common MirrorType implementations -*- swift -*-==// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See http://swift.org/LICENSE.txt for license information // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// %{ from SwiftIntTypes import * # Number of bits in the Builtin.Word type word_bits = int(CMAKE_SIZEOF_VOID_P) * 8 Types = [ ('Float', '.Float', '$0'), ('Double', '.Double', '$0'), ('Bool', '.Logical', '$0'), ('String', '.Text', '$0'), ('Character', '.Text', 'String($0)'), ('UnicodeScalar', '.UInt', 'UInt64($0)'), ] for self_ty in all_integer_types(word_bits): Self = self_ty.stdlib_name if self_ty.is_signed: Types.append( (Self, '.Int', 'Int64($0)') ) else: Types.append( (Self, '.UInt', 'UInt64($0)') ) }% internal func _toString(x: T) -> String { return String(x) } % for Type in Types: extension ${Type[0]} : Reflectable { /// Returns a mirror that reflects `self`. public func getMirror() -> MirrorType { return _LeafMirror(self, _toString, { .Some(${Type[1]}(${Type[2]})) }) } } % end // ${'Local Variables'}: // eval: (read-only-mode 1) // End: