UNPKG

multiformats

Version:

Interface for multihash, multicodec, multibase and CID

26 lines (21 loc) 623 B
import type { ArrayBufferView, ByteView } from '../block/interface.ts' /** * IPLD encoder part of the codec. */ export interface BlockEncoder<Code extends number, T> { name: string code: Code encode(data: T): ByteView<T> } /** * IPLD decoder part of the codec. */ export interface BlockDecoder<Code extends number, T> { code: Code decode(bytes: ByteView<T> | ArrayBufferView<T>): T } /** * An IPLD codec is a combination of both encoder and decoder. */ export interface BlockCodec<Code extends number, T> extends BlockEncoder<Code, T>, BlockDecoder<Code, T> {} export type { ArrayBufferView, ByteView }