func ChainID(dgsts []digest.Digest) digest.Digest
ChainID takes a slice of digests and returns the ChainID corresponding to the last entry. Typically, these are a list of layer DiffIDs, with the result providing the ChainID identifying the result of sequential application of the preceding layers.
func ChainIDs(dgsts []digest.Digest) []digest.Digest
ChainIDs calculates the recursively applied chain id for each identifier in the slice. The result is written direcly back into the slice such that the ChainID for each item will be in the respective position.
By definition of ChainID, the zeroth element will always be the same before and after the call.
As an example, given the chain of ids `[A, B, C]`, the result `[A, ChainID(A|B), ChainID(A|B|C)]` will be written back to the slice.
The input is provided as a return value for convenience.
Typically, these are a list of layer DiffIDs, with the result providing the ChainID for each the result of each layer application sequentially.
func FromBytes(p []byte) digest.Digest
FromBytes digests the input and returns a Digest.
func FromReader(rd io.Reader) (digest.Digest, error)
FromReader consumes the content of rd until io.EOF, returning canonical digest.
func FromString(s string) digest.Digest
FromString digests the input and returns a Digest.