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  }