export const ReloadableURI = Symbol.for("@effect/core/io/Reloadable") export type ReloadableURI = typeof ReloadableURI /** * A `Reloadable` is an implementation of some service that can be dynamically * reloaded, or swapped out for another implementation on-the-fly. * * @tsplus type effect/core/io/Reloadable */ export interface Reloadable { readonly [ReloadableURI]: { _Service: (_: never) => Service } readonly scopedRef: ScopedRef readonly reload: Effect /** * Retrieves the current version of the reloadable service. */ get get(): Effect /** * Forks the reload of the service in the background, ignoring any errors. */ get reloadFork(): Effect } /** * @tsplus type effect/core/io/Reloadable.Ops */ export interface ReloadableOps {} export const Reloadable: ReloadableOps = {}