diff --git a/index.go b/index.go index aa41782..3ecad07 100644 --- a/index.go +++ b/index.go @@ -21,19 +21,14 @@ const ( IndexEntrySize = 8 // Offset(8) ) -// IndexHeader 索引文件头部 -type IndexHeader struct { - Magic uint32 // 魔数,用于识别索引文件 - Version uint32 // 版本号 -} - // RecordIndex 记录索引管理器 type RecordIndex struct { - logPath string // 日志文件路径 - indexPath string // 索引文件路径 - offsets []int64 // 内存中的偏移索引 - header IndexHeader // 索引文件头部 - indexFile *os.File // 索引文件句柄(用于追加写入) + logPath string // 日志文件路径 + indexPath string // 索引文件路径 + offsets []int64 // 内存中的偏移索引 + magic uint32 // 魔数,用于识别索引文件 + version uint32 // 版本号 + indexFile *os.File // 索引文件句柄(用于追加写入) } // NewRecordIndex 创建或加载记录索引 @@ -45,10 +40,8 @@ func NewRecordIndex(logPath string) (*RecordIndex, error) { logPath: logPath, indexPath: indexPath, offsets: make([]int64, 0, 1024), - header: IndexHeader{ - Magic: IndexMagic, - Version: IndexVersion, - }, + magic: IndexMagic, + version: IndexVersion, } // 启动时总是从日志文件重建索引 @@ -122,8 +115,8 @@ func (ri *RecordIndex) save() error { // 写入头部 headerBuf := make([]byte, IndexHeaderSize) - binary.LittleEndian.PutUint32(headerBuf[0:4], ri.header.Magic) - binary.LittleEndian.PutUint32(headerBuf[4:8], ri.header.Version) + binary.LittleEndian.PutUint32(headerBuf[0:4], ri.magic) + binary.LittleEndian.PutUint32(headerBuf[4:8], ri.version) if _, err := f.Write(headerBuf); err != nil { return fmt.Errorf("write header: %w", err) diff --git a/index_test.go b/index_test.go index 091b286..649ed8c 100644 --- a/index_test.go +++ b/index_test.go @@ -272,12 +272,12 @@ func TestIndexHeader(t *testing.T) { writer.Close() // 验证魔数和版本 - if index.header.Magic != IndexMagic { - t.Errorf("Magic 不正确: got 0x%X, want 0x%X", index.header.Magic, IndexMagic) + if index.magic != IndexMagic { + t.Errorf("Magic 不正确: got 0x%X, want 0x%X", index.magic, IndexMagic) } - if index.header.Version != IndexVersion { - t.Errorf("Version 不正确: got %d, want %d", index.header.Version, IndexVersion) + if index.version != IndexVersion { + t.Errorf("Version 不正确: got %d, want %d", index.version, IndexVersion) } // 验证记录总数(从内存索引计算)