package Ġorg . map db . ec . flat Ċ Ċ object Ġprimitive HashCode { ĊĊĠĠĠ Ġfun ĠhashCode ( type : String , Ġitem : String ) Ġ= Ġwhen ( type ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ" boolean " Ġ-> Ġboolean HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" byte " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" short " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" char " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" int " Ġ-> Ġint HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" long " Ġ-> Ġlong HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" float " Ġ-> Ġfloat HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" double " Ġ-> Ġdouble HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġhash Ġcode : Ġ"+ type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġboolean HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠĠ Ġ" ($ item Ġ? Ġ 1 2 3 1 Ġ: Ġ 1 2 3 7 )" ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġint HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ"$ item " ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġnarrow HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ"( int ) Ġ$ item " ĊĊĠĠĠ Ġfun Ġlong HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ"( int ) Ġ($ item Ġ^ Ġ$ item Ġ>> Ġ 3 2 )" ĊĊĠĠĠ Ġfun Ġfloat HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ" Float . float ToInt Bits ($ item )" ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġdouble HashCode ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ"( int ) Ġ( Double . double To Long Bits ($ item ) Ġ^ ĠDouble . double To Long Bits ($ item ) Ġ>> Ġ 3 2 )" ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġbits ( type : String , Ġitem : String ) Ġ= Ġwhen ( type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" byte " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" short " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" char " Ġ-> Ġnarrow HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" int " Ġ-> Ġint HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" long " Ġ-> Ġint HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" float " Ġ-> Ġfloat HashCode ( item ) ĊĠĠĠĠĠĠĠ Ġ" double " Ġ-> Ġdouble Bits ( item ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġbits : Ġ" Ġ+ Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdouble Bits ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ" Double . double To Long Bits ($ item )" ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġspread ( type : String , Ġitem : String ) Ġ= Ġwhen ( type ){ ĊĠĠĠ Ġ" byte " Ġ-> Ġspread 8 ( item ) ĊĠĠĠ Ġ" short " Ġ-> Ġspread 3 2 ( item ) ĊĠĠĠ Ġ" char " Ġ-> Ġspread 3 2 ( item ) ĊĠĠĠ Ġ" int " Ġ-> Ġspread 3 2 ( item ) ĊĠĠĠ Ġ" long " Ġ-> Ġspread 6 4 ( item ) ĊĠĠĠ Ġ" float " Ġ-> Ġspread 3 2 ( item ) ĊĠĠĠ Ġ" double " Ġ-> Ġspread 6 4 ( item ) ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġspread Ġfunction : Ġ"+ type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġspread 2 ( type : String , Ġitem : String ) Ġ= Ġwhen ( type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" byte " Ġ-> Ġspread 2 8 ( item ) ĊĠĠĠĠĠĠĠ Ġ" short " Ġ-> Ġspread 2 3 2 ( item ) ĊĠĠĠĠĠĠĠ Ġ" char " Ġ-> Ġspread 2 3 2 ( item ) ĊĠĠĠĠĠĠĠ Ġ" int " Ġ-> Ġspread 2 3 2 ( item ) ĊĠĠĠĠĠĠĠ Ġ" long " Ġ-> Ġspread 2 6 4 ( item ) ĊĠĠĠĠĠĠĠ Ġ" float " Ġ-> Ġspread 2 3 2 ( item ) ĊĠĠĠĠĠĠĠ Ġ" double " Ġ-> Ġspread 2 6 4 ( item ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġspread Ġfunction : Ġ" Ġ+ Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreverse Spread ( type : String , Ġitem : String ) Ġ= Ġwhen ( type Ġ){ ĊĠĠĠĠĠĠĠ Ġ" byte " Ġ-> Ġinteger Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" short " Ġ-> Ġinteger Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" char " Ġ-> Ġinteger Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" int " Ġ-> Ġinteger Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" long " Ġ-> Ġlong Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" float " Ġ-> Ġinteger Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġ" double " Ġ-> Ġlong Reverse ( item ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġspread Ġfunction : Ġ"+ type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinteger Reverse ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ" Integer . reverse ($ item )" ĊĊĠĠĠ Ġfun Ġlong Reverse ( item : String ) Ġ= ĊĠĠĠĠĠĠĠ Ġ"( int ) ĠLong . reverse ($ item )" ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġspread 8 ( type : String ) Ġ= Ġ""" ĊĠĠĠ Ġint Ġspread And Mask ($ type Ġelement ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNo Ġsp reading Ġnecessary Ġfor Ġ 8 - bit Ġtypes ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . mask ( element ); ĊĠĠĠ Ġ} Ċ """ ĊĊĠĠĠ Ġfun Ġspread 2 8 ( type : String ) Ġ= Ġ"" Ġ// TODO Ġthis Ġwas Ġempty Ġin Ġtemplate ? ĊĠĠĠĠĊĊĠĠĠ Ġfun Ġspread 3 2 ( type : String ) Ġ= Ġ""" ĊĠĠĠ Ġint Ġspread And Mask ($ type Ġelement ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġint Ġcode Ġ= ĠSp read Functions .${ type } Spread One ( element ); ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . mask ( code ); ĊĠĠĠ Ġ} ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġfun Ġspread 2 3 2 ( type : String ) Ġ= Ġ""" ĊĠĠĠ Ġint Ġspread Two And Mask ($ type Ġelement ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġint Ġcode Ġ= ĠSp read Functions .${ type } Spread Two ( element ); ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . mask ( code ); ĊĠĠĠ Ġ} Ċ """ ĊĊĠĠĠ Ġfun Ġspread 6 4 ( type : String ) Ġ= Ġ""" ĊĠĠĠ Ġint Ġspread And Mask ($ type Ġelement ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġlong Ġcode Ġ= ĠSp read Functions .${ type } Spread One ( element ); ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . mask (( int ) Ġcode ); ĊĠĠĠ Ġ} Ċ """ ĊĊĠĠĠ Ġfun Ġspread 2 6 4 ( type : String ) Ġ= Ġ""" ĊĠĠĠ Ġint Ġspread Two And Mask ($ type Ġelement ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġlong Ġcode Ġ= ĠSp read Functions .${ type } Spread Two ( element ); ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . mask (( int ) Ġcode ); ĊĠĠĠ Ġ} Ċ """ ĊĊĠĠĠ Ġfun Ġprobe ( type : String , Ġitem : String ): String Ġ= Ġwhen ( type ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ" byte " Ġ-> Ġ" probe 8 ( item )" Ċ // ĠĠĠĠĠĠĠ Ġ" short " Ġ-> Ġprobe 3 2 6 4 ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ" char " Ġ-> Ġprobe 3 2 6 4 ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ" int " Ġ-> Ġprobe 3 2 6 4 ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ" float " Ġ-> Ġprobe 3 2 6 4 ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ" long " Ġ-> Ġprobe 3 2 6 4 ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ" double " Ġ-> Ġprobe 3 2 6 4 ( item ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠError (" no Ġmatching Ġprobe Ġfunction : Ġ" Ġ+ Ġtype ) ĊĠĠĠ Ġ} ĊĊ Ċ }