format

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ReaderFormats = map[string]func(string) (Reader, error){
		awdb.DBFormat:      func(file string) (Reader, error) { return awdb.NewReader(file) },
		ip2region.DBFormat: func(file string) (Reader, error) { return ip2region.NewReader(file) },
		ipdb.DBFormat:      func(file string) (Reader, error) { return ipdb.NewReader(file) },
		mmdb.DBFormat:      func(file string) (Reader, error) { return mmdb.NewReader(file) },
		plain.DBFormat:     func(file string) (Reader, error) { return plain.NewReader(file) },
		qqwry.DBFormat:     func(file string) (Reader, error) { return qqwry.NewReader(file) },
		zxinc.DBFormat:     func(file string) (Reader, error) { return zxinc.NewReader(file) },
	}
	ReaderExts = map[string]func(string) (Reader, error){
		awdb.DBExt:      func(file string) (Reader, error) { return awdb.NewReader(file) },
		ip2region.DBExt: func(file string) (Reader, error) { return ip2region.NewReader(file) },
		ipdb.DBExt:      func(file string) (Reader, error) { return ipdb.NewReader(file) },
		mmdb.DBExt:      func(file string) (Reader, error) { return mmdb.NewReader(file) },
		plain.DBExt:     func(file string) (Reader, error) { return plain.NewReader(file) },
		qqwry.DBExt:     func(file string) (Reader, error) { return qqwry.NewReader(file) },
		zxinc.DBExt:     func(file string) (Reader, error) { return zxinc.NewReader(file) },
	}
	ReaderCommonNames = map[string]func(string) (Reader, error){}
)
View Source
var (
	WriterFormats = map[string]func(meta *model.Meta) (Writer, error){
		ipdb.DBFormat:  func(meta *model.Meta) (Writer, error) { return ipdb.NewWriter(meta) },
		mmdb.DBFormat:  func(meta *model.Meta) (Writer, error) { return mmdb.NewWriter(meta) },
		plain.DBFormat: func(meta *model.Meta) (Writer, error) { return plain.NewWriter(meta) },
	}
	WriterExts = map[string]func(meta *model.Meta) (Writer, error){
		ipdb.DBExt:  func(meta *model.Meta) (Writer, error) { return ipdb.NewWriter(meta) },
		mmdb.DBExt:  func(meta *model.Meta) (Writer, error) { return mmdb.NewWriter(meta) },
		plain.DBExt: func(meta *model.Meta) (Writer, error) { return plain.NewWriter(meta) },
	}
)

Functions

func RegisterReaderCommonName

func RegisterReaderCommonName(name string, fn func(string) (Reader, error))

RegisterReaderCommonName registers a Reader by its common file name.

func RegisterReaderExt

func RegisterReaderExt(ext string, fn func(string) (Reader, error))

RegisterReaderExt registers a Reader by its file extension.

func RegisterReaderFormat

func RegisterReaderFormat(name string, fn func(string) (Reader, error))

RegisterReaderFormat registers a Reader by its format.

func RegisterWriterExt

func RegisterWriterExt(ext string, fn func(meta *model.Meta) (Writer, error))

RegisterWriterExt registers a Writer by its file extension.

func RegisterWriterFormat

func RegisterWriterFormat(name string, fn func(meta *model.Meta) (Writer, error))

RegisterWriterFormat registers a Writer by its format.

Types

type Reader

type Reader interface {

	// Meta returns the meta-information of the IP database.
	Meta() *model.Meta

	// Find retrieves IP information based on the given IP address.
	Find(ip net.IP) (*model.IPInfo, error)

	// SetOption configures the Reader with the provided option.
	SetOption(option interface{}) error

	// Close closes the IP database.
	Close() error
}

Reader defines an interface for reading IP databases.

func NewReader

func NewReader(format, file string) (Reader, error)

NewReader creates a Reader based on its format or file name.

type Writer

type Writer interface {

	// SetOption configures the Writer with the provided option.
	SetOption(option interface{}) error

	// Insert IP information
	Insert(info *model.IPInfo) error

	// WriteTo writes data to io.Writer
	WriteTo(w io.Writer) (int64, error)

	// WriterFormat returns the format of the writer.
	WriterFormat() string
}

Writer defines an interface for writing IP databases.

func NewWriter

func NewWriter(format string, file string, meta *model.Meta) (Writer, error)

NewWriter creates a Writer based on its format or file name.

Directories

Path Synopsis
geo
sdk
sdk
sdk
sdk
sdk

Jump to

Keyboard shortcuts

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