zordfsdb

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: MIT Imports: 6 Imported by: 0

README

zordfsdb

Build Status

Simple filesystem based key/value db. Provided as golang lib. Main idea is that user knows structure and gets value from known path. For operations that should search or do more should be used Nodes (golang structure).

Configuration

Init root directory.

Supported command

Commands can be split into value layer when you know the structure and node layer for deaper operations.

value layer commands
  • Get - to get value from path
  • Save - update or create value. Depends on path. If path directs into not existing parent object - will return false
  • Inc - increase abcex value
  • Dec - decrease abcex value
  • Now - save current datetime
node layer commands
  • GetNode - to get node. It can be object, list or value object. Returns false if not exist
  • CreatNode - create list (director) to add many same objects (structure should be controlled by user) or single object. Parent Node should exist
  • AddObject - add object to given list. Should assign abcex id
helper commands
  • Del - delete value, object or list by given path
  • Keys - return possible keys for object or ids for list

dictionary

  • object - directory of key/value
  • list - directory of objects named by abcex as key
  • path - path to key or object or list

DEV

Run tests: $ go test

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB struct {
	Root  string
	Nodes map[string]Node
}

func InitDB

func InitDB(root string) (DB, error)

func (*DB) AddObject added in v1.0.1

func (db *DB) AddObject(vpath string) (string, error)

func (*DB) CreateNode added in v1.0.1

func (db *DB) CreateNode(vpath string) bool

func (*DB) Dec

func (db *DB) Dec(vpath string) bool

func (*DB) Del

func (db *DB) Del(vpath string) bool

func (*DB) Get

func (db *DB) Get(vpath string) (string, bool)

func (*DB) GetNode

func (db *DB) GetNode(vpath string) (Node, bool)

func (*DB) GetNodes added in v1.0.2

func (db *DB) GetNodes() map[string]Node

func (*DB) Inc

func (db *DB) Inc(vpath string) bool

func (*DB) Keys

func (db *DB) Keys(vpath string) []string

func (*DB) Now

func (db *DB) Now(vpath string) bool

func (*DB) Refresh

func (db *DB) Refresh() error

func (*DB) Save

func (db *DB) Save(vpath string, value string) bool

type GetNodes added in v1.0.2

type GetNodes interface {
	GetNodes() map[string]Node
}

type Node

type Node struct {
	Key    string
	Value  string
	Nodes  map[string]Node
	Object bool
	List   bool
}

func (*Node) FixType

func (node *Node) FixType()

func (*Node) GetNodes added in v1.0.2

func (node *Node) GetNodes() map[string]Node

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL