Ты встроил интерфейс в структуру, вопрос зачем
Это кстати хороший способ подмешивать поведение и расширять тип
например у меня недавно был случай, когда в зависимости от обстоятельтв на объект надо было брать эксклюзивный или расшаренный лок
очень удобно оказалось встроить sync.Locker и использовать разные вид мьютексов