github.com/rstandt/terraform@v0.12.32-0.20230710220336-b1063613405c/states/statemgr/statemgr.go (about)

     1  package statemgr
     2  
     3  // Storage is the union of Transient and Persistent, for state managers that
     4  // have both transient and persistent storage.
     5  //
     6  // Types implementing this interface coordinate between their Transient
     7  // and Persistent implementations so that the persistent operations read
     8  // or write the transient store.
     9  type Storage interface {
    10  	Transient
    11  	Persistent
    12  }
    13  
    14  // Full is the union of all of the more-specific state interfaces.
    15  //
    16  // This interface may grow over time, so state implementations aiming to
    17  // implement it may need to be modified for future changes. To ensure that
    18  // this need can be detected, always include a statement nearby the declaration
    19  // of the implementing type that will fail at compile time if the interface
    20  // isn't satisfied, such as:
    21  //
    22  //     var _ statemgr.Full = (*ImplementingType)(nil)
    23  type Full interface {
    24  	Storage
    25  	Locker
    26  }