package metrics

import "time"

type Register interface {
	IncSwitchCount()
	SetLastBlock(uint32)
	IncNotificationCount(notificationType string)
	ObserveInvoke(typ string, contract string, method string, success bool, d time.Duration)
}

type NoopRegister struct{}

func (NoopRegister) IncSwitchCount()                                           {}
func (NoopRegister) SetLastBlock(uint32)                                       {}
func (NoopRegister) IncNotificationCount(string)                               {}
func (NoopRegister) ObserveInvoke(string, string, string, bool, time.Duration) {}

type NoopMorphCacheMetrics struct{}

func (m *NoopMorphCacheMetrics) AddMethodDuration(string, bool, time.Duration) {}