kmparser

package
v0.0.0-...-cb501a5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2022 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PacketIdentifierType            = 2206764383142231373
	PacketIdentifierPaddingType     = 6449815373135188035
	PacketIdentifierTag             = 9280816983786621498
	PacketIdentifierStructSize      = 2296279785726396957
	PacketIdentifierStructFieldSize = 3117293985139574571
	PacketIdentifierEnumFieldData   = 6917629752752470509
	PacketIdentifierEnumField       = 18350873289003309128
	PacketIdentifierEnumData        = 18057555498029063613
	PacketIdentifierEnumeration     = 1253319329451847685
	PacketIdentifierStructFieldData = 17962757807284521522
	PacketIdentifierStructField     = 12155838558451759529
	PacketIdentifierStructData      = 8290009745541165076
	PacketIdentifierStructure       = 18088017590773436939
	PacketIdentifierContentSize     = 8764462619562198222
	PacketIdentifierContent         = 6792576797909524956
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Content

type Content struct {
	Tags    []Tag
	Structs []Structure
	Enums   []Enumeration
	Size    ContentSize
	Name    string
	Packed  bool
}

func NewContent

func NewContent() Content

func (*Content) PacketIdentifier

func (x *Content) PacketIdentifier() PacketIdentifier

func (*Content) Read

func (x *Content) Read(viewer *ContentViewer, reader *karmem.Reader)

func (*Content) ReadAsRoot

func (x *Content) ReadAsRoot(reader *karmem.Reader)

func (*Content) Reset

func (x *Content) Reset()

func (*Content) Write

func (x *Content) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*Content) WriteAsRoot

func (x *Content) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type ContentSize

type ContentSize struct {
	Largest uint32
}

func NewContentSize

func NewContentSize() ContentSize

func (*ContentSize) PacketIdentifier

func (x *ContentSize) PacketIdentifier() PacketIdentifier

func (*ContentSize) Read

func (x *ContentSize) Read(viewer *ContentSizeViewer, reader *karmem.Reader)

func (*ContentSize) ReadAsRoot

func (x *ContentSize) ReadAsRoot(reader *karmem.Reader)

func (*ContentSize) Reset

func (x *ContentSize) Reset()

func (*ContentSize) Write

func (x *ContentSize) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*ContentSize) WriteAsRoot

func (x *ContentSize) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type ContentSizeViewer

type ContentSizeViewer [8]byte

func NewContentSizeViewer

func NewContentSizeViewer(reader *karmem.Reader, offset uint32) (v *ContentSizeViewer)

func (*ContentSizeViewer) Largest

func (x *ContentSizeViewer) Largest() (v uint32)

type ContentViewer

type ContentViewer [41]byte

func NewContentViewer

func NewContentViewer(reader *karmem.Reader, offset uint32) (v *ContentViewer)

func (*ContentViewer) Enums

func (x *ContentViewer) Enums(reader *karmem.Reader) (v []EnumerationViewer)

func (*ContentViewer) Name

func (x *ContentViewer) Name(reader *karmem.Reader) (v string)

func (*ContentViewer) Packed

func (x *ContentViewer) Packed() (v bool)

func (*ContentViewer) Size

func (x *ContentViewer) Size(reader *karmem.Reader) (v *ContentSizeViewer)

func (*ContentViewer) Structs

func (x *ContentViewer) Structs(reader *karmem.Reader) (v []StructureViewer)

func (*ContentViewer) Tags

func (x *ContentViewer) Tags(reader *karmem.Reader) (v []TagViewer)

type EnumData

type EnumData struct {
	Name         string
	Type         Type
	Fields       []EnumField
	Tags         []Tag
	IsSequential bool
}

func NewEnumData

func NewEnumData() EnumData

func (*EnumData) PacketIdentifier

func (x *EnumData) PacketIdentifier() PacketIdentifier

func (*EnumData) Read

func (x *EnumData) Read(viewer *EnumDataViewer, reader *karmem.Reader)

func (*EnumData) ReadAsRoot

func (x *EnumData) ReadAsRoot(reader *karmem.Reader)

func (*EnumData) Reset

func (x *EnumData) Reset()

func (*EnumData) Write

func (x *EnumData) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*EnumData) WriteAsRoot

func (x *EnumData) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type EnumDataViewer

type EnumDataViewer [33]byte

func NewEnumDataViewer

func NewEnumDataViewer(reader *karmem.Reader, offset uint32) (v *EnumDataViewer)

func (*EnumDataViewer) Fields

func (x *EnumDataViewer) Fields(reader *karmem.Reader) (v []EnumFieldViewer)

func (*EnumDataViewer) IsSequential

func (x *EnumDataViewer) IsSequential() (v bool)

func (*EnumDataViewer) Name

func (x *EnumDataViewer) Name(reader *karmem.Reader) (v string)

func (*EnumDataViewer) Tags

func (x *EnumDataViewer) Tags(reader *karmem.Reader) (v []TagViewer)

func (*EnumDataViewer) Type

func (x *EnumDataViewer) Type(reader *karmem.Reader) (v *TypeViewer)

type EnumField

type EnumField struct {
	Data EnumFieldData
}

func NewEnumField

func NewEnumField() EnumField

func (*EnumField) PacketIdentifier

func (x *EnumField) PacketIdentifier() PacketIdentifier

func (*EnumField) Read

func (x *EnumField) Read(viewer *EnumFieldViewer, reader *karmem.Reader)

func (*EnumField) ReadAsRoot

func (x *EnumField) ReadAsRoot(reader *karmem.Reader)

func (*EnumField) Reset

func (x *EnumField) Reset()

func (*EnumField) Write

func (x *EnumField) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*EnumField) WriteAsRoot

func (x *EnumField) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type EnumFieldData

type EnumFieldData struct {
	Name  string
	Value string
	Tags  []Tag
}

func NewEnumFieldData

func NewEnumFieldData() EnumFieldData

func (*EnumFieldData) PacketIdentifier

func (x *EnumFieldData) PacketIdentifier() PacketIdentifier

func (*EnumFieldData) Read

func (x *EnumFieldData) Read(viewer *EnumFieldDataViewer, reader *karmem.Reader)

func (*EnumFieldData) ReadAsRoot

func (x *EnumFieldData) ReadAsRoot(reader *karmem.Reader)

func (*EnumFieldData) Reset

func (x *EnumFieldData) Reset()

func (*EnumFieldData) Write

func (x *EnumFieldData) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*EnumFieldData) WriteAsRoot

func (x *EnumFieldData) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type EnumFieldDataViewer

type EnumFieldDataViewer [28]byte

func NewEnumFieldDataViewer

func NewEnumFieldDataViewer(reader *karmem.Reader, offset uint32) (v *EnumFieldDataViewer)

func (*EnumFieldDataViewer) Name

func (x *EnumFieldDataViewer) Name(reader *karmem.Reader) (v string)

func (*EnumFieldDataViewer) Tags

func (x *EnumFieldDataViewer) Tags(reader *karmem.Reader) (v []TagViewer)

func (*EnumFieldDataViewer) Value

func (x *EnumFieldDataViewer) Value(reader *karmem.Reader) (v string)

type EnumFieldViewer

type EnumFieldViewer [4]byte

func NewEnumFieldViewer

func NewEnumFieldViewer(reader *karmem.Reader, offset uint32) (v *EnumFieldViewer)

func (*EnumFieldViewer) Data

func (x *EnumFieldViewer) Data(reader *karmem.Reader) (v *EnumFieldDataViewer)

type Enumeration

type Enumeration struct {
	Data EnumData
}

func NewEnumeration

func NewEnumeration() Enumeration

func (*Enumeration) PacketIdentifier

func (x *Enumeration) PacketIdentifier() PacketIdentifier

func (*Enumeration) Read

func (x *Enumeration) Read(viewer *EnumerationViewer, reader *karmem.Reader)

func (*Enumeration) ReadAsRoot

func (x *Enumeration) ReadAsRoot(reader *karmem.Reader)

func (*Enumeration) Reset

func (x *Enumeration) Reset()

func (*Enumeration) Write

func (x *Enumeration) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*Enumeration) WriteAsRoot

func (x *Enumeration) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type EnumerationViewer

type EnumerationViewer [4]byte

func NewEnumerationViewer

func NewEnumerationViewer(reader *karmem.Reader, offset uint32) (v *EnumerationViewer)

func (*EnumerationViewer) Data

func (x *EnumerationViewer) Data(reader *karmem.Reader) (v *EnumDataViewer)

type PacketIdentifier

type PacketIdentifier uint64

type PaddingType

type PaddingType struct {
	Data Type
}

func NewPaddingType

func NewPaddingType() PaddingType

func (*PaddingType) PacketIdentifier

func (x *PaddingType) PacketIdentifier() PacketIdentifier

func (*PaddingType) Read

func (x *PaddingType) Read(viewer *PaddingTypeViewer, reader *karmem.Reader)

func (*PaddingType) ReadAsRoot

func (x *PaddingType) ReadAsRoot(reader *karmem.Reader)

func (*PaddingType) Reset

func (x *PaddingType) Reset()

func (*PaddingType) Write

func (x *PaddingType) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*PaddingType) WriteAsRoot

func (x *PaddingType) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type PaddingTypeViewer

type PaddingTypeViewer [4]byte

func NewPaddingTypeViewer

func NewPaddingTypeViewer(reader *karmem.Reader, offset uint32) (v *PaddingTypeViewer)

func (*PaddingTypeViewer) Data

func (x *PaddingTypeViewer) Data(reader *karmem.Reader) (v *TypeViewer)

type Reader

type Reader struct {
	Parsed Content
	// contains filtered or unexported fields
}

Reader reads and decodes Karmem files.

func NewReader

func NewReader(path string, r io.Reader) *Reader

NewReader accepts any karmem file as io.Reader. In order to give errors, the path is used.

func (*Reader) Parser

func (r *Reader) Parser() (d *Content, err error)

Parser will try to parse the given karmem file.

type StructClass

type StructClass uint8
const (
	StructClassNone   StructClass = 0
	StructClassTable  StructClass = 1
	StructClassInline StructClass = 2
)

type StructData

type StructData struct {
	ID     uint64
	Name   string
	Alias  string
	Size   StructSize
	Fields []StructField
	Class  StructClass
	Tags   []Tag
	Packed bool
}

func NewStructData

func NewStructData() StructData

func (StructData) IsTable

func (x StructData) IsTable() bool

func (*StructData) PacketIdentifier

func (x *StructData) PacketIdentifier() PacketIdentifier

func (*StructData) Read

func (x *StructData) Read(viewer *StructDataViewer, reader *karmem.Reader)

func (*StructData) ReadAsRoot

func (x *StructData) ReadAsRoot(reader *karmem.Reader)

func (*StructData) Reset

func (x *StructData) Reset()

func (*StructData) Write

func (x *StructData) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*StructData) WriteAsRoot

func (x *StructData) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructDataViewer

type StructDataViewer [42]byte

func NewStructDataViewer

func NewStructDataViewer(reader *karmem.Reader, offset uint32) (v *StructDataViewer)

func (*StructDataViewer) Class

func (x *StructDataViewer) Class() (v StructClass)

func (*StructDataViewer) Fields

func (x *StructDataViewer) Fields(reader *karmem.Reader) (v []StructFieldViewer)

func (*StructDataViewer) ID

func (x *StructDataViewer) ID() (v uint64)

func (*StructDataViewer) Name

func (x *StructDataViewer) Name(reader *karmem.Reader) (v string)

func (*StructDataViewer) Packed

func (x *StructDataViewer) Packed() (v bool)

func (*StructDataViewer) Size

func (x *StructDataViewer) Size(reader *karmem.Reader) (v *StructSizeViewer)

func (*StructDataViewer) Tags

func (x *StructDataViewer) Tags(reader *karmem.Reader) (v []TagViewer)

type StructField

type StructField struct {
	Data StructFieldData
}

func NewStructField

func NewStructField() StructField

func (*StructField) PacketIdentifier

func (x *StructField) PacketIdentifier() PacketIdentifier

func (*StructField) Read

func (x *StructField) Read(viewer *StructFieldViewer, reader *karmem.Reader)

func (*StructField) ReadAsRoot

func (x *StructField) ReadAsRoot(reader *karmem.Reader)

func (*StructField) Reset

func (x *StructField) Reset()

func (*StructField) Write

func (x *StructField) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*StructField) WriteAsRoot

func (x *StructField) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructFieldData

type StructFieldData struct {
	Name   string
	Type   Type
	Offset uint32
	Tags   []Tag
	Size   StructFieldSize
}

func NewStructFieldData

func NewStructFieldData() StructFieldData

func (*StructFieldData) PacketIdentifier

func (x *StructFieldData) PacketIdentifier() PacketIdentifier

func (*StructFieldData) Read

func (x *StructFieldData) Read(viewer *StructFieldDataViewer, reader *karmem.Reader)

func (*StructFieldData) ReadAsRoot

func (x *StructFieldData) ReadAsRoot(reader *karmem.Reader)

func (*StructFieldData) Reset

func (x *StructFieldData) Reset()

func (*StructFieldData) Write

func (x *StructFieldData) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*StructFieldData) WriteAsRoot

func (x *StructFieldData) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructFieldDataViewer

type StructFieldDataViewer [32]byte

func NewStructFieldDataViewer

func NewStructFieldDataViewer(reader *karmem.Reader, offset uint32) (v *StructFieldDataViewer)

func (*StructFieldDataViewer) Name

func (x *StructFieldDataViewer) Name(reader *karmem.Reader) (v string)

func (*StructFieldDataViewer) Offset

func (x *StructFieldDataViewer) Offset() (v uint32)

func (*StructFieldDataViewer) Size

func (*StructFieldDataViewer) Tags

func (x *StructFieldDataViewer) Tags(reader *karmem.Reader) (v []TagViewer)

func (*StructFieldDataViewer) Type

func (x *StructFieldDataViewer) Type(reader *karmem.Reader) (v *TypeViewer)

type StructFieldSize

type StructFieldSize struct {
	Minimum    uint32
	Allocation uint32
	Field      uint32
}

func NewStructFieldSize

func NewStructFieldSize() StructFieldSize

func (*StructFieldSize) PacketIdentifier

func (x *StructFieldSize) PacketIdentifier() PacketIdentifier

func (*StructFieldSize) Read

func (x *StructFieldSize) Read(viewer *StructFieldSizeViewer, reader *karmem.Reader)

func (*StructFieldSize) ReadAsRoot

func (x *StructFieldSize) ReadAsRoot(reader *karmem.Reader)

func (*StructFieldSize) Reset

func (x *StructFieldSize) Reset()

func (*StructFieldSize) Write

func (x *StructFieldSize) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*StructFieldSize) WriteAsRoot

func (x *StructFieldSize) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructFieldSizeViewer

type StructFieldSizeViewer [16]byte

func NewStructFieldSizeViewer

func NewStructFieldSizeViewer(reader *karmem.Reader, offset uint32) (v *StructFieldSizeViewer)

func (*StructFieldSizeViewer) Allocation

func (x *StructFieldSizeViewer) Allocation() (v uint32)

func (*StructFieldSizeViewer) Field

func (x *StructFieldSizeViewer) Field() (v uint32)

func (*StructFieldSizeViewer) Minimum

func (x *StructFieldSizeViewer) Minimum() (v uint32)

type StructFieldViewer

type StructFieldViewer [4]byte

func NewStructFieldViewer

func NewStructFieldViewer(reader *karmem.Reader, offset uint32) (v *StructFieldViewer)

func (*StructFieldViewer) Data

func (x *StructFieldViewer) Data(reader *karmem.Reader) (v *StructFieldDataViewer)

type StructSize

type StructSize struct {
	Minimum    uint32
	Content    uint32
	Padding    uint32
	Total      uint32
	TotalGroup []PaddingType
}

func NewStructSize

func NewStructSize() StructSize

func (*StructSize) PacketIdentifier

func (x *StructSize) PacketIdentifier() PacketIdentifier

func (*StructSize) Read

func (x *StructSize) Read(viewer *StructSizeViewer, reader *karmem.Reader)

func (*StructSize) ReadAsRoot

func (x *StructSize) ReadAsRoot(reader *karmem.Reader)

func (*StructSize) Reset

func (x *StructSize) Reset()

func (*StructSize) Write

func (x *StructSize) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*StructSize) WriteAsRoot

func (x *StructSize) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructSizeViewer

type StructSizeViewer [28]byte

func NewStructSizeViewer

func NewStructSizeViewer(reader *karmem.Reader, offset uint32) (v *StructSizeViewer)

func (*StructSizeViewer) Content

func (x *StructSizeViewer) Content() (v uint32)

func (*StructSizeViewer) Minimum

func (x *StructSizeViewer) Minimum() (v uint32)

func (*StructSizeViewer) Padding

func (x *StructSizeViewer) Padding() (v uint32)

func (*StructSizeViewer) Total

func (x *StructSizeViewer) Total() (v uint32)

func (*StructSizeViewer) TotalGroup

func (x *StructSizeViewer) TotalGroup(reader *karmem.Reader) (v []PaddingTypeViewer)

type Structure

type Structure struct {
	Data StructData
}

func NewStructure

func NewStructure() Structure

func (*Structure) PacketIdentifier

func (x *Structure) PacketIdentifier() PacketIdentifier

func (*Structure) Read

func (x *Structure) Read(viewer *StructureViewer, reader *karmem.Reader)

func (*Structure) ReadAsRoot

func (x *Structure) ReadAsRoot(reader *karmem.Reader)

func (*Structure) Reset

func (x *Structure) Reset()

func (*Structure) Write

func (x *Structure) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*Structure) WriteAsRoot

func (x *Structure) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type StructureViewer

type StructureViewer [4]byte

func NewStructureViewer

func NewStructureViewer(reader *karmem.Reader, offset uint32) (v *StructureViewer)

func (*StructureViewer) Data

func (x *StructureViewer) Data(reader *karmem.Reader) (v *StructDataViewer)

type Tag

type Tag struct {
	Name  string
	Value string
}

func NewTag

func NewTag() Tag

func (*Tag) PacketIdentifier

func (x *Tag) PacketIdentifier() PacketIdentifier

func (*Tag) Read

func (x *Tag) Read(viewer *TagViewer, reader *karmem.Reader)

func (*Tag) ReadAsRoot

func (x *Tag) ReadAsRoot(reader *karmem.Reader)

func (*Tag) Reset

func (x *Tag) Reset()

func (*Tag) Write

func (x *Tag) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*Tag) WriteAsRoot

func (x *Tag) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type TagViewer

type TagViewer [16]byte

func NewTagViewer

func NewTagViewer(reader *karmem.Reader, offset uint32) (v *TagViewer)

func (*TagViewer) Name

func (x *TagViewer) Name(reader *karmem.Reader) (v string)

func (*TagViewer) Value

func (x *TagViewer) Value(reader *karmem.Reader) (v string)

type Tags

type Tags []Tag

func (Tags) Get

func (x Tags) Get(s string) (string, bool)

func (Tags) GetBoolean

func (x Tags) GetBoolean(s string) (r int, err error)

type Type

type Type struct {
	Schema      string
	PlainSchema string
	Length      uint32
	Format      TypeFormat
	Model       TypeModel
}

func NewType

func NewType() Type

func (*Type) IsArray

func (x *Type) IsArray() bool

func (*Type) IsBasic

func (x *Type) IsBasic() bool

func (*Type) IsBool

func (x *Type) IsBool() bool

func (*Type) IsEnum

func (x *Type) IsEnum() bool

func (*Type) IsInline

func (x *Type) IsInline() bool

func (*Type) IsInteger

func (x *Type) IsInteger() bool

func (*Type) IsLimited

func (x *Type) IsLimited() bool

func (*Type) IsNative

func (x *Type) IsNative() bool

func (*Type) IsSlice

func (x *Type) IsSlice() bool

func (*Type) IsString

func (x *Type) IsString() bool

func (*Type) PacketIdentifier

func (x *Type) PacketIdentifier() PacketIdentifier

func (*Type) Read

func (x *Type) Read(viewer *TypeViewer, reader *karmem.Reader)

func (*Type) ReadAsRoot

func (x *Type) ReadAsRoot(reader *karmem.Reader)

func (*Type) Reset

func (x *Type) Reset()

func (*Type) Write

func (x *Type) Write(writer *karmem.Writer, start uint) (offset uint, err error)

func (*Type) WriteAsRoot

func (x *Type) WriteAsRoot(writer *karmem.Writer) (offset uint, err error)

type TypeFormat

type TypeFormat uint8
const (
	TypeFormatNone      TypeFormat = 0
	TypeFormatPrimitive TypeFormat = 1
	TypeFormatEnum      TypeFormat = 2
	TypeFormatStruct    TypeFormat = 3
	TypeFormatTable     TypeFormat = 4
)

type TypeModel

type TypeModel uint8
const (
	TypeModelNone         TypeModel = 0
	TypeModelSingle       TypeModel = 1
	TypeModelArray        TypeModel = 2
	TypeModelSlice        TypeModel = 3
	TypeModelSliceLimited TypeModel = 4
)

type TypeViewer

type TypeViewer [26]byte

func NewTypeViewer

func NewTypeViewer(reader *karmem.Reader, offset uint32) (v *TypeViewer)

func (*TypeViewer) Format

func (x *TypeViewer) Format() (v TypeFormat)

func (*TypeViewer) Length

func (x *TypeViewer) Length() (v uint32)

func (*TypeViewer) Model

func (x *TypeViewer) Model() (v TypeModel)

func (*TypeViewer) PlainSchema

func (x *TypeViewer) PlainSchema(reader *karmem.Reader) (v string)

func (*TypeViewer) Schema

func (x *TypeViewer) Schema(reader *karmem.Reader) (v string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL