This shows struct and interface embedding with basic custom objects to hopefully more easily explain how things work.
See https://gist.github.com/Integralist/b2e87acad7fdf354ade3250dcb31c168#file-1-md for an explanation.
This shows struct and interface embedding with real golang stdlib object.
This is so in a 'dev' environment we can return an object that calls a 'mock' method, while in production the returned object will be different and so it won't call that method.