package layer

import (
	"io"
	"net/http"
	"sync"
)

type detector struct {
	io.Reader
	sync.Once

	contentType string
}

func newDetector(r io.Reader) *detector {
	return &detector{Reader: r}
}

func (d *detector) Read(data []byte) (int, error) {
	d.Do(func() {
		d.contentType = http.DetectContentType(data)
	})

	return d.Reader.Read(data)
}