Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNotFound is returned when a link or edge lookup fails. ErrNotFound = errors.New("not found") // ErrUnknownEdgeLinks is returned when attempting to create an edge // with an invalid source and/or destination ID ErrUnknownEdgeLinks = errors.New("unknown source and/or destination for edge") )
Functions ¶
This section is empty.
Types ¶
type Edge ¶
type Edge struct {
// A unique identifier for the edge.
ID uuid.UUID
// The origin link.
Src uuid.UUID
// The destination link.
Dst uuid.UUID
// The timestamp when the link was last updated.
UpdatedAt time.Time
}
Edge describes a graph edge that originates from Src and terminates at Dst.
type EdgeIterator ¶
type EdgeIterator interface {
Iterator
// Edge returns the currently fetched edge objects.
Edge() *Edge
}
EdgeIterator is implemented by objects that can iterate the graph edges.
type Graph ¶
type Graph interface {
// UpsertLink creates a new link or updates an existing link.
UpsertLink(link *Link) error
// FindLink looks up a link by its ID.
FindLink(id uuid.UUID) (*Link, error)
// Links returns an iterator for the set of links whose IDs belong to the
// [fromID, toID) range and were retrieved before the provided timestamp.
Links(fromID, toID uuid.UUID, retrievedBefore time.Time) (LinkIterator, error)
// UpsertEdge creates a new edge or updates an existing edge.
UpsertEdge(edge *Edge) error
// Edges returns an iterator for the set of edges whose source vertex IDs
// belong to the [fromID, toID) range and were updated before the provided
// timestamp.
Edges(fromID, toID uuid.UUID, updatedBefore time.Time) (EdgeIterator, error)
// RemoveStaleEdges removes any edge that originates from the specified
// link ID and was updated before the specified timestamp.
RemoveStaleEdges(fromID uuid.UUID, updatedBefore time.Time) error
}
Graph is implemented by objects that can mutate or query a link graph.
type Iterator ¶
type Iterator interface {
// Next advances the iterator. If no more items are available or an
// error occurs, calls to Next() return false.
Next() bool
// Error returns the last error encountered by the iterator.
Error() error
// Close releases any resources associated with an iterator.
Close() error
}
Iterator is implemented by graph objects that can be iterated.
type Link ¶
type Link struct {
// A unique identifier for the link.
ID uuid.UUID
// The link target.
URL string
// The timestamp when the link was last retrieved.
RetrievedAt time.Time
}
Link encapsulates all information about a link discovered by the Links 'R' Us crawler.
type LinkIterator ¶
type LinkIterator interface {
Iterator
// Link returns the currently fetched link object.
Link() *Link
}
LinkIterator is implemented by objects that can iterate the graph links.
Click to show internal directories.
Click to hide internal directories.