github.com/cayleygraph/cayley@v0.7.7/imports.go (about) 1 package cayley 2 3 import ( 4 "github.com/cayleygraph/cayley/graph" 5 _ "github.com/cayleygraph/cayley/graph/memstore" 6 "github.com/cayleygraph/cayley/graph/path" 7 _ "github.com/cayleygraph/cayley/writer" 8 "github.com/cayleygraph/quad" 9 ) 10 11 var ( 12 StartMorphism = path.StartMorphism 13 StartPath = path.StartPath 14 15 NewTransaction = graph.NewTransaction 16 ) 17 18 type Iterator = graph.Iterator 19 type QuadStore = graph.QuadStore 20 type QuadWriter = graph.QuadWriter 21 22 type Path = path.Path 23 24 type Handle struct { 25 graph.QuadStore 26 graph.QuadWriter 27 } 28 29 func (h *Handle) Close() error { 30 err := h.QuadWriter.Close() 31 h.QuadStore.Close() 32 return err 33 } 34 35 func Triple(subject, predicate, object interface{}) quad.Quad { 36 return Quad(subject, predicate, object, nil) 37 } 38 39 func Quad(subject, predicate, object, label interface{}) quad.Quad { 40 return quad.Make(subject, predicate, object, label) 41 } 42 43 func NewGraph(name, dbpath string, opts graph.Options) (*Handle, error) { 44 qs, err := graph.NewQuadStore(name, dbpath, opts) 45 if err != nil { 46 return nil, err 47 } 48 qw, err := graph.NewQuadWriter("single", qs, nil) 49 if err != nil { 50 return nil, err 51 } 52 return &Handle{qs, qw}, nil 53 } 54 55 func NewMemoryGraph() (*Handle, error) { 56 return NewGraph("memstore", "", nil) 57 }