func CacheFasthttp(bodyHandler fasthttp.RequestHandler, expiration time.Duration) *fhttp.Handler {
	return fhttp.NewHandler(bodyHandler, expiration)
}
CacheFasthttp accepts two parameters
first is the fasthttp.RequestHandler which you want to cache its result
the second is, optional, the cache Entry's expiration duration
if the expiration <=2 seconds then expiration is taken by the "cache-control's maxage" header
returns a fhttp.Handler with a ServeHTTP which is the fasthttp.RequestHandler,
which you can use as your default router or per-route handler

All type of responses are cached, templates, json, text, anything.

You can add validators with this function
package httpcache
import (
	"github.com/geekypanda/httpcache/fhttp"
	"github.com/geekypanda/httpcache/nethttp"
	"github.com/geekypanda/httpcache/server"
	"github.com/valyala/fasthttp"
	"net/http"
	"time"
)
const (
	Version = "0.0.5"
)
func Cache(bodyHandler http.Handler, expiration time.Duration) *nethttp.Handler {
	return nethttp.NewHandler(bodyHandler, expiration)
}
func CacheFunc(bodyHandler func(http.ResponseWriter, *http.Request), expiration time.Duration) http.HandlerFunc {
	return Cache(http.HandlerFunc(bodyHandler), expiration).ServeHTTP
}