Movatterモバイル変換
[0]ホーム
modulePostgreSQLBinary.DecoderwhereimportPostgreSQLBinary.Preludehiding(bool)importqualifiedData.ByteStringasBimportqualifiedData.ByteString.Lazy.BuilderasBBimportqualifiedData.ByteString.LazyasBLimportqualifiedData.TextasTimportqualifiedData.Text.EncodingasTEimportqualifiedData.Text.LazyasTLimportqualifiedData.Text.Lazy.EncodingasTLEimportqualifiedData.ScientificasScientificimportqualifiedData.UUIDasUUIDimportqualifiedPostgreSQLBinary.Decoder.ZeptoasZeptoimportqualifiedPostgreSQLBinary.ArrayasArrayimportqualifiedPostgreSQLBinary.TimeasTimeimportqualifiedPostgreSQLBinary.IntegralasIntegralimportqualifiedPostgreSQLBinary.NumericasNumericimportqualifiedPostgreSQLBinary.IntervalasIntervaltypeDa=ByteString->EitherTextaint::(Integrala,Bitsa)=>Daint=Right.Integral.packfloat4::DFloatfloat4=unsafeCoerce(int::DWord32)float8::DDoublefloat8=unsafeCoerce(int::DWord64)numeric::DScientificnumeric=flipZepto.run(inlineZepto.numeric)char::DCharcharx=maybe(Left"Empty input")(return.fst).T.uncons=<<textxtext::DTexttext=either(Left.fromString.show)Right.TE.decodeUtf8'bytea::DByteStringbytea=Rightdate::DDaydate=fmap(Time.postgresJulianToDay.fromIntegral).(int::DInt32)time::Bool->DTimeOfDaytime=\caseTrue->fmapTime.microsToTimeOfDay.intFalse->fmapTime.secsToTimeOfDay.float8timetz::Bool->D(TimeOfDay,TimeZone)timetzinteger_datetimes=\x->let(timeX,zoneX)=B.splitAt8xin(,)<$>timeinteger_datetimestimeX<*>tzzoneXwheretz=fmap(minutesToTimeZone.negate.(`div`60).fromIntegral).(int::DInt32)timestamp::Bool->DLocalTimetimestamp=\caseTrue->fmapTime.microsToLocalTime.intFalse->fmapTime.secsToLocalTime.float8timestamptz::Bool->DUTCTimetimestamptz=\caseTrue->fmapTime.microsToUTC.intFalse->fmapTime.secsToUTC.float8interval::Bool->DDiffTimeintervalintegerDatetimes=evalState$dot<-state$B.splitAt8d<-state$B.splitAt4m<-getreturn$doux<-ifintegerDatetimestheninttelsefloat8t>>=return.round.(*(10^6)).toRationaldx<-intdmx<-intmreturn$Interval.toDiffTime$Interval.Intervaluxdxmxbool::DBoolboolb=caseB.unconsbofJust(0,_)->returnFalseJust(1,_)->returnTrue_->Left("Invalid value: "<>(fromString.show)b)uuid::DUUIDuuid=evalStateT$UUID.fromWords<$>word<*>word<*>word<*>wordwhereword=lift.int=<<state(B.splitAt4)array::DArray.Dataarray=flipZepto.runZepto.array
[8]ページ先頭