# Functions
IndirectType returns the value of a pointer-type "typ".
IndirectValue returns the reflect.Value that "v" points to.
IsZero returns true if a value is nil.
LookupNonZeroFieldsValues lookup for filled fields based on the "v" struct value instance.
MakeBindObject accepts any "v" value, struct, pointer or a function.
MakeStructInjector returns a new struct injector, which will be the object that the caller should use to bind exported fields or embedded unexported fields that contain exported fields of the "v" struct value or pointer.
NewContainer returns new empty Container.
NumFields returns the total number of fields, and the embedded, even if the embedded struct is not exported, it will check for its exported fields.
Struct is being used to return a new injector based on a struct value instance, if it contains fields that the types of those are matching with one or more of the `Values` then they are binded with the injector's `Inject` and `InjectElem` methods.
ValueOf returns the reflect.Value of "o".
ValuesOf same as `ValueOf` but accepts a slice of somethings and returns a slice of reflect.Value.
# Constants
Dynamic returns a value but it depends on some input arguments from the caller, on serve time.
Singleton is the scope that the struct is the same between calls, it has no dynamic dependencies or any unexported fields that is not seted on creation, so it doesn't need to be created on each call/request.
Stateless is the scope that the struct should be different on each binding, think it like `Request Scoped`, per-request struct for mvc.
Static is the simple assignable value, a static value.
# Variables
EmptyIn is just an empty slice of reflect.Value.
# Structs
BindObject contains the dependency value's read-only information.
No description provided by the author
# Type aliases
BindType is the type of a binded object/value, it's being used to check if the value is accessible after a function call with a "ctx" when needed ( Dynamic type) or it's just a struct value (a service | Static type).
Container is a shortcut for []reflect.Value.
Scope is the struct injector's struct value scope/permant state.