** (Service) - Holds a list of all the services defined by this IoC.** ** @since 1.2.0constmixin ServiceStats {** Returns service stats, keyed by service id.abstract Str:ServiceStat stats()}** @since 1.2.0internalconstclass ServiceStatsImpl : ServiceStats {privateconst ObjLocator objLocatornew make(Registry registry){this.objLocator = (ObjLocator) registry}override Str:ServiceStat stats(){ objLocator.stats}}** As returned by `ServiceStats`. Defines some basic statistics for a service.** ** @since 1.2.0constclass ServiceStat {const Str serviceIdconst Type serviceTypeconst ServiceScope scopeconst Bool proxyDisabledconst ServiceLifecycle lifecycleconst Int noOfImpls @NoDoc @Deprecated { msg="Use 'serviceType' instead."} Type type(){ serviceType }internalnew make(|This|? f){ f?.call(this)}internal This withLifecyle(ServiceLifecycle newLifecycle){ ServiceStat {it.serviceId = this.serviceIdit.serviceType = this.serviceTypeit.scope = this.scopeit.proxyDisabled= this.proxyDisabledit.lifecycle = newLifecycleit.noOfImpls = this.noOfImpls}}internal This withIncImpls(){ ServiceStat {it.serviceId = this.serviceIdit.serviceType = this.serviceTypeit.scope = this.scopeit.proxyDisabled= this.proxyDisabledit.lifecycle = this.lifecycleit.noOfImpls = this.noOfImpls + 1}}}** Used by `ServiceStat` to define the lifecycle state of a service** ** @since 1.2.0enum class ServiceLifecycle {** The service is defined in a module, but has not yet been referenced. DEFINED,** A proxy has been created for the service, but the implementation itself no methods of the proxy have been invoked. VIRTUAL,** A service implementation for the service has been created. It is real! CREATED,// leave this last for compare** Builtin services exist before the `Registry` is constructed. BUILTIN;}