mod

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2023 License: Apache-2.0, MIT Imports: 12 Imported by: 2

Documentation

Overview

Package mod provides DAG modification utilities to, for example, insert additional nodes in a unixfs DAG or truncate them.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrSeekFail           = errors.New("failed to seek properly")
	ErrUnrecognizedWhence = errors.New("unrecognized whence")
	ErrNotUnixfs          = errors.New("dagmodifier only supports unixfs nodes (proto or raw)")
)

Common errors

Functions

This section is empty.

Types

type DagModifier

type DagModifier struct {
	Prefix    cid.Prefix
	RawLeaves bool
	// contains filtered or unexported fields
}

DagModifier is the only struct licensed and able to correctly perform surgery on a DAG 'file' Dear god, please rename this to something more pleasant

func NewDagModifier

func NewDagModifier(ctx context.Context, from ipld.Node, serv ipld.DAGService, spl chunker.SplitterGen) (*DagModifier, error)

NewDagModifier returns a new DagModifier, the Cid prefix for newly created nodes will be inhered from the passed in node. If the Cid version if not 0 raw leaves will also be enabled. The Prefix and RawLeaves options can be overridden by changing them after the call.

func (*DagModifier) CtxReadFull

func (dm *DagModifier) CtxReadFull(ctx context.Context, b []byte) (int, error)

CtxReadFull reads data from this dag starting at the current offset

func (*DagModifier) GetNode

func (dm *DagModifier) GetNode() (ipld.Node, error)

GetNode gets the modified DAG Node

func (*DagModifier) HasChanges

func (dm *DagModifier) HasChanges() bool

HasChanges returned whether or not there are unflushed changes to this dag

func (*DagModifier) Read

func (dm *DagModifier) Read(b []byte) (int, error)

Read data from this dag starting at the current offset

func (*DagModifier) Seek

func (dm *DagModifier) Seek(offset int64, whence int) (int64, error)

Seek modifies the offset according to whence. See unixfs/io for valid whence values.

func (*DagModifier) Size

func (dm *DagModifier) Size() (int64, error)

Size returns the Filesize of the node

func (*DagModifier) Sync

func (dm *DagModifier) Sync() error

Sync writes changes to this dag to disk

func (*DagModifier) Truncate

func (dm *DagModifier) Truncate(size int64) error

Truncate truncates the current Node to 'size' and replaces it with the new one.

func (*DagModifier) Write

func (dm *DagModifier) Write(b []byte) (int, error)

Write continues writing to the dag at the current offset

func (*DagModifier) WriteAt

func (dm *DagModifier) WriteAt(b []byte, offset int64) (int, error)

WriteAt will modify a dag file in place

Jump to

Keyboard shortcuts

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