move lib/go/gremlin to ent/dialect (#1192)

Summary:
Pull Request resolved: https://github.com/facebookexternal/fbc/pull/1192

Pull Request resolved: https://github.com/facebookincubator/ent/pull/11

Reviewed By: alexsn

Differential Revision: D16377224

fbshipit-source-id: 07ca7436eb9b64fbe2299568560b91466b2417ba
This commit is contained in:
Ariel Mashraki
2019-07-20 08:14:34 -07:00
committed by Facebook Github Bot
parent 8b2447b8eb
commit 1e47de5300
175 changed files with 8626 additions and 478 deletions

View File

@@ -0,0 +1,30 @@
package graphson
import (
"time"
"unsafe"
"github.com/json-iterator/go"
)
func init() {
RegisterTypeEncoder("time.Time", typeEncoder{timeCodec{}, Timestamp})
RegisterTypeDecoder("time.Time", typeDecoder{timeCodec{}, Types{Timestamp, Date}})
}
type timeCodec struct{}
func (timeCodec) IsEmpty(ptr unsafe.Pointer) bool {
ts := *((*time.Time)(ptr))
return ts.IsZero()
}
func (timeCodec) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) {
ts := *((*time.Time)(ptr))
stream.WriteInt64(ts.UnixNano() / time.Millisecond.Nanoseconds())
}
func (timeCodec) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
ns := iter.ReadInt64() * time.Millisecond.Nanoseconds()
*((*time.Time)(ptr)) = time.Unix(0, ns)
}