37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package viewmodel
|
|
|
|
import "github.com/wagoodman/dive/dive/image"
|
|
|
|
type LayerSetState struct {
|
|
LayerIndex int
|
|
Layers []*image.Layer
|
|
CompareMode LayerCompareMode
|
|
CompareStartIndex int
|
|
}
|
|
|
|
func NewLayerSetState(layers []*image.Layer, compareMode LayerCompareMode) *LayerSetState {
|
|
return &LayerSetState{
|
|
Layers: layers,
|
|
CompareMode: compareMode,
|
|
}
|
|
}
|
|
|
|
// getCompareIndexes determines the layer boundaries to use for comparison (based on the current compare mode)
|
|
func (state *LayerSetState) GetCompareIndexes() (bottomTreeStart, bottomTreeStop, topTreeStart, topTreeStop int) {
|
|
bottomTreeStart = state.CompareStartIndex
|
|
topTreeStop = state.LayerIndex
|
|
|
|
if state.LayerIndex == state.CompareStartIndex {
|
|
bottomTreeStop = state.LayerIndex
|
|
topTreeStart = state.LayerIndex
|
|
} else if state.CompareMode == CompareSingleLayer {
|
|
bottomTreeStop = state.LayerIndex - 1
|
|
topTreeStart = state.LayerIndex
|
|
} else {
|
|
bottomTreeStop = state.CompareStartIndex
|
|
topTreeStart = state.CompareStartIndex + 1
|
|
}
|
|
|
|
return bottomTreeStart, bottomTreeStop, topTreeStart, topTreeStop
|
|
}
|