func (m Middleware) Wrap(before, after interface{}) Middleware {
	return Middleware(m.mw().Wrap(before, after))
}
Wrap is the same as (sandwich.Middleware).Wrap, but returns a
martini_sandwich.Middleware.
package martini_sandwich
import (
	"net/http"
	"github.com/augustoroman/sandwich"
	"github.com/augustoroman/sandwich/chain"
	"github.com/go-martini/martini"
)
func New() Middleware {
	c := chain.Chain(sandwich.New()).
		Reserve((martini.Params)(nil))
	return Middleware(c)
}
func TheUsual() Middleware {
	c := chain.Chain(sandwich.TheUsual()).
		Reserve((martini.Params)(nil))
	return Middleware(c)
}
type Middleware sandwich.Middleware
func (m Middleware) H(w http.ResponseWriter, r *http.Request, p martini.Params) {
	err := chain.Chain(m).Run(&w, r, p)
	if err != nil {
		panic(err)
	}
}
func (m Middleware) mw() sandwich.Middleware { return sandwich.Middleware(m) }
func (m Middleware) Provide(val interface{}) Middleware {
	return Middleware(m.mw().Provide(val))
}
func (m Middleware) ProvideAs(val, ifacePtr interface{}) Middleware {
	return Middleware(m.mw().ProvideAs(val, ifacePtr))
}
func (m Middleware) With(handlers ...interface{}) Middleware {
	return Middleware(m.mw().With(handlers...))
}
func (m Middleware) OnErr(handler interface{}) Middleware {
	return Middleware(m.mw().OnErr(handler))
}