layer/empty.go
500e77ba
 package layer
 
 import (
 	"archive/tar"
 	"bytes"
 	"io"
21278efa
 	"io/ioutil"
500e77ba
 )
 
 // DigestSHA256EmptyTar is the canonical sha256 digest of empty tar file -
 // (1024 NULL bytes)
 const DigestSHA256EmptyTar = DiffID("sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef")
 
 type emptyLayer struct{}
 
 // EmptyLayer is a layer that corresponds to empty tar.
 var EmptyLayer = &emptyLayer{}
 
21278efa
 func (el *emptyLayer) TarStream() (io.ReadCloser, error) {
500e77ba
 	buf := new(bytes.Buffer)
 	tarWriter := tar.NewWriter(buf)
 	tarWriter.Close()
21278efa
 	return ioutil.NopCloser(buf), nil
500e77ba
 }
 
 func (el *emptyLayer) ChainID() ChainID {
 	return ChainID(DigestSHA256EmptyTar)
 }
 
 func (el *emptyLayer) DiffID() DiffID {
 	return DigestSHA256EmptyTar
 }
 
 func (el *emptyLayer) Parent() Layer {
 	return nil
 }
 
 func (el *emptyLayer) Size() (size int64, err error) {
 	return 0, nil
 }
 
 func (el *emptyLayer) DiffSize() (size int64, err error) {
 	return 0, nil
 }
 
 func (el *emptyLayer) Metadata() (map[string]string, error) {
 	return make(map[string]string), nil
 }