mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-02 12:17:39 -06:00
f40800b3a4
This is part of a general effort to move all of Terraform's non-library package surface under internal in order to reinforce that these are for internal use within Terraform only. If you were previously importing packages under this prefix into an external codebase, you could pin to an earlier release tag as an interim solution until you've make a plan to achieve the same functionality some other way.
27 lines
875 B
Go
27 lines
875 B
Go
package statemgr
|
|
|
|
// Storage is the union of Transient and Persistent, for state managers that
|
|
// have both transient and persistent storage.
|
|
//
|
|
// Types implementing this interface coordinate between their Transient
|
|
// and Persistent implementations so that the persistent operations read
|
|
// or write the transient store.
|
|
type Storage interface {
|
|
Transient
|
|
Persistent
|
|
}
|
|
|
|
// Full is the union of all of the more-specific state interfaces.
|
|
//
|
|
// This interface may grow over time, so state implementations aiming to
|
|
// implement it may need to be modified for future changes. To ensure that
|
|
// this need can be detected, always include a statement nearby the declaration
|
|
// of the implementing type that will fail at compile time if the interface
|
|
// isn't satisfied, such as:
|
|
//
|
|
// var _ statemgr.Full = (*ImplementingType)(nil)
|
|
type Full interface {
|
|
Storage
|
|
Locker
|
|
}
|