go-multicodec
go-multicodec copied to clipboard
Go constants for the multicodec table
go-multicodec
Generated Go constants for the multicodec table used by the multiformats projects.
Table of Contents
- Install
- Type
- Usage
- Importing Code constant
- Code from string
- Code from uint64
- Generator
- With old table.csv
- With updated table.csv
- Maintainers
- Contribute
- License
Install
go-multicodec is a standard Go module:
go get github.com/multiformats/go-multicodec
Type
Code describes an integer reserved in the multicodec table, defined at multiformats/multicodec/table.csv.
type Code uint64
Usage
Importing Code constant
package main
import "github.com/multiformats/go-multicodec"
func main() {
code := multicodec.Sha2_256 // Code
name := multicodec.Sha2_256.String()
}
The corresponding name value for each codec from the multicodecs table can be accessed via its String method. For example, multicodec.Sha2_256.String() will return sha2-256.
Code from string
var multicodec.Code code
err := code.Set("libp2p-key")
Code from uint64
rawCode := multicodec.Code(0x55)
Generator
With old table.csv
To generate the constants yourself:
$ git clone https://github.com/multiformats/go-multicodec
$ cd go-multicodec
$ git submodule init && git submodule update
$ go generate
Note: You may need to install stringer via go install golang.org/x/tools/cmd/stringer.
With updated table.csv
To generate the constants for the latest table.csv:
$ git clone https://github.com/multiformats/go-multicodec
$ cd go-multicodec
$ git submodule init
$ git submodule update --remote # updates ./multicodec/table.csv to upstream version
$ go generate
Maintainers
Contribute
Contributions welcome. Please check out the issues.
Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.
Small note: If editing the README, please conform to the standard-readme specification.
License
SPDX-License-Identifier: Apache-2.0 OR MIT