func (p *NodesCache) PutNode(node *element.Node) error { if node.Tags == nil { return nil } keyBuf := idToKeyBuf(node.Id) data, err := binary.MarshalNode(node) if err != nil { return err } return p.db.Put(p.wo, keyBuf, data) }
func (p *NodesCache) PutNodes(nodes []element.Node) (int, error) { batch := levigo.NewWriteBatch() defer batch.Close() var n int for _, node := range nodes { if len(node.Tags) == 0 { continue } keyBuf := idToKeyBuf(node.Id) data, err := binary.MarshalNode(&node) if err != nil { return 0, err } batch.Put(keyBuf, data) n += 1 } return n, p.db.Write(p.wo, batch) }