export enum SDContextDescriptorKind { Module = 0 , Extension = 1 , Anonymous = 2 , SwiftProtocol = 3 , OpaqueType = 4 , Class = 16 , Struct = 17 , Enum = 18 , Type_Last = 31 , Unknow = 0xFF } export class SDContextDescriptorFlags { value : number ; constructor ( val ) { this . value = val ; } getKind ( ) { let tmp = this . value & 0x1F ; switch ( tmp ) { case SDContextDescriptorKind . Module : return SDContextDescriptorKind . Module ; case SDContextDescriptorKind . Extension : return SDContextDescriptorKind . Extension ; case SDContextDescriptorKind . Anonymous : return SDContextDescriptorKind . Anonymous ; case SDContextDescriptorKind . SwiftProtocol : return SDContextDescriptorKind . SwiftProtocol ; case SDContextDescriptorKind . OpaqueType : return SDContextDescriptorKind . OpaqueType ; case SDContextDescriptorKind . Class : return SDContextDescriptorKind . Class ; case SDContextDescriptorKind . Struct : return SDContextDescriptorKind . Struct ; case SDContextDescriptorKind . Enum : return SDContextDescriptorKind . Enum ; } return SDContextDescriptorKind . Unknow ; } isGeneric ( ) { return ( this . value & 0x80 ) != 0 ; } isUnique ( ) { return ( this . value & 0x40 ) != 0 ; } getVersion ( ) { return ( this . value >> 8 ) & 0xFF ; } getKindSpecificFlags ( ) { return ( this . value >> 16 ) & 0xFFFF ; } } export function getKindDesc ( kind ) { switch ( kind ) { case SDContextDescriptorKind . Module : return "module" ; case SDContextDescriptorKind . Extension : return "extension" ; case SDContextDescriptorKind . Anonymous : return "anonymous" ; case SDContextDescriptorKind . SwiftProtocol : return "protocol" ; case SDContextDescriptorKind . OpaqueType : return "opaqueType" ; case SDContextDescriptorKind . Class : return "class" ; case SDContextDescriptorKind . Struct : return "struct" ; case SDContextDescriptorKind . Enum : return "enum" ; } return "unknow" ; }