From 81f365e99636104ff81151370048a51e8ae8027a Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 16 Sep 2023 20:39:02 +0300 Subject: feat: parsing sar custom data (#4) --- pkg/classes/stringTable.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'pkg/classes/stringTable.go') diff --git a/pkg/classes/stringTable.go b/pkg/classes/stringTable.go index c6709f5..3983c1f 100644 --- a/pkg/classes/stringTable.go +++ b/pkg/classes/stringTable.go @@ -1,8 +1,6 @@ package classes import ( - "bytes" - "github.com/pektezol/bitreader" ) @@ -26,7 +24,7 @@ type StringTableClass struct { Data string } -func ParseStringTables(reader *bitreader.ReaderType) []StringTable { +func ParseStringTables(reader *bitreader.Reader) []StringTable { tableCount := reader.TryReadBits(8) stringTables := make([]StringTable, tableCount) for i := 0; i < int(tableCount); i++ { @@ -37,7 +35,7 @@ func ParseStringTables(reader *bitreader.ReaderType) []StringTable { return stringTables } -func (stringTable *StringTable) ParseStream(reader *bitreader.ReaderType) { +func (stringTable *StringTable) ParseStream(reader *bitreader.Reader) { stringTable.Name = reader.TryReadString() entryCount := reader.TryReadBits(16) stringTable.TableEntries = make([]StringTableEntry, entryCount) @@ -60,23 +58,23 @@ func (stringTable *StringTable) ParseStream(reader *bitreader.ReaderType) { } } -func (stringTableEntry *StringTableEntry) Parse(reader *bitreader.ReaderType) { +func (stringTableEntry *StringTableEntry) Parse(reader *bitreader.Reader) { stringTableEntry.Name = reader.TryReadString() if reader.TryReadBool() { byteLen, err := reader.ReadBits(16) if err != nil { return } - dataBsr := reader.TryReadBytesToSlice(int(byteLen)) - _ = bitreader.Reader(bytes.NewReader(dataBsr), true) // TODO: Parse StringTableEntry + dataBsr := reader.TryReadBytesToSlice(byteLen) + _ = bitreader.NewReaderFromBytes(dataBsr, true) // TODO: Parse StringTableEntry // stringTableEntry.EntryData.ParseStream(entryReader) } } -func (stringTableClass *StringTableClass) Parse(reader *bitreader.ReaderType) { +func (stringTableClass *StringTableClass) Parse(reader *bitreader.Reader) { stringTableClass.Name = reader.TryReadString() if reader.TryReadBool() { dataLen := reader.TryReadBits(16) - stringTableClass.Data = reader.TryReadStringLen(int(dataLen)) + stringTableClass.Data = reader.TryReadStringLength(dataLen) } } -- cgit v1.2.3