mirror of
https://github.com/tw93/Mole.git
synced 2026-02-04 11:31:46 +00:00
refactor: simplify with slices.Clone
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@@ -27,8 +28,8 @@ var (
|
||||
func snapshotFromModel(m model) historyEntry {
|
||||
return historyEntry{
|
||||
Path: m.path,
|
||||
Entries: cloneDirEntries(m.entries),
|
||||
LargeFiles: cloneFileEntries(m.largeFiles),
|
||||
Entries: slices.Clone(m.entries),
|
||||
LargeFiles: slices.Clone(m.largeFiles),
|
||||
TotalSize: m.totalSize,
|
||||
TotalFiles: m.totalFiles,
|
||||
Selected: m.selected,
|
||||
@@ -45,24 +46,6 @@ func cacheSnapshot(m model) historyEntry {
|
||||
return entry
|
||||
}
|
||||
|
||||
func cloneDirEntries(entries []dirEntry) []dirEntry {
|
||||
if len(entries) == 0 {
|
||||
return nil
|
||||
}
|
||||
copied := make([]dirEntry, len(entries))
|
||||
copy(copied, entries) //nolint:all
|
||||
return copied
|
||||
}
|
||||
|
||||
func cloneFileEntries(files []fileEntry) []fileEntry {
|
||||
if len(files) == 0 {
|
||||
return nil
|
||||
}
|
||||
copied := make([]fileEntry, len(files))
|
||||
copy(copied, files) //nolint:all
|
||||
return copied
|
||||
}
|
||||
|
||||
func ensureOverviewSnapshotCacheLocked() error {
|
||||
if overviewSnapshotLoaded {
|
||||
return nil
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"slices"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync/atomic"
|
||||
@@ -982,8 +983,8 @@ func (m model) enterSelectedDir() (tea.Model, tea.Cmd) {
|
||||
}
|
||||
|
||||
if cached, ok := m.cache[m.path]; ok && !cached.Dirty {
|
||||
m.entries = cloneDirEntries(cached.Entries)
|
||||
m.largeFiles = cloneFileEntries(cached.LargeFiles)
|
||||
m.entries = slices.Clone(cached.Entries)
|
||||
m.largeFiles = slices.Clone(cached.LargeFiles)
|
||||
m.totalSize = cached.TotalSize
|
||||
m.totalFiles = cached.TotalFiles
|
||||
m.selected = cached.Selected
|
||||
|
||||
Reference in New Issue
Block a user