rbxdump

package module
v0.10.3 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2024 License: MIT Imports: 4 Imported by: 7

README

Go Reference

rbxdump

The rbxdump package is a Go package used to serialize Roblox Lua API dumps.

API References

  • rbxdump
    • diff: Provides operations for diffing and patching rbxdump structures.
    • json: Serializes between rbxdump and the JSON dump format.
    • legacy: Serializes between rbxdump and the legacy dump format.

Documentation

Overview

The rbxdump package is used to represent Roblox Lua API dumps.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Callback

type Callback struct {
	Name                string
	Parameters          []Parameter
	ReturnType          []Type
	Security            string
	ThreadSafety        string
	PreferredDescriptor PreferredDescriptor
	Tags
}

Callback is a Member that represents a class callback.

func (*Callback) Copy added in v0.2.0

func (member *Callback) Copy() *Callback

Copy returns a deep copy of the callback.

func (*Callback) Fields added in v0.2.0

func (member *Callback) Fields(fields Fields) Fields

Fields implements the Fielder interface.

func (*Callback) MarshalJSON added in v0.10.1

func (member *Callback) MarshalJSON() ([]byte, error)

func (*Callback) MemberCopy added in v0.2.0

func (member *Callback) MemberCopy() Member

MemberCopy returns a deep copy of the member.

MemberType implements the Member interface.

func (*Callback) MemberName added in v0.2.0

func (member *Callback) MemberName() string

MemberName returns the name of the member.

MemberType implements the Member interface.

func (*Callback) MemberType added in v0.2.0

func (member *Callback) MemberType() string

MemberType returns a string indicating the the type of member.

MemberType implements the Member interface.

func (*Callback) SetFields added in v0.2.0

func (member *Callback) SetFields(fields Fields)

SetFields implements the Fielder interface.

type Class

type Class struct {
	Name                string
	Superclass          string
	MemoryCategory      string
	Members             map[string]Member
	PreferredDescriptor PreferredDescriptor
	Tags
}

Class represents a class defined in an API dump.

func (*Class) Copy

func (class *Class) Copy() *Class

Copy returns a deep copy of the class.

func (*Class) Fields added in v0.2.0

func (class *Class) Fields(fields Fields) Fields

Fields implements the Fielder interface.

func (*Class) GetMembers

func (class *Class) GetMembers() []Member

GetMembers returns a list of members belonging to the class, sorted by name.

func (*Class) SetFields added in v0.2.0

func (class *Class) SetFields(fields Fields)

SetFields implements the Fielder interface.

type Enum

type Enum struct {
	Name                string
	Items               map[string]*EnumItem
	PreferredDescriptor PreferredDescriptor
	Tags
}

Enum represents an enum defined in an API dump.

func (*Enum) Copy

func (enum *Enum) Copy() *Enum

Copy returns a deep copy of the enum.

func (*Enum) Fields added in v0.2.0

func (enum *Enum) Fields(fields Fields) Fields

Fields implements the Fielder interface. Does not return the Items field.

func (*Enum) GetEnumItems

func (enum *Enum) GetEnumItems() []*EnumItem

GetEnumItems returns a list of items of the enum.

func (*Enum) SetFields added in v0.2.0

func (enum *Enum) SetFields(fields Fields)

SetFields implements the Fielder interface.

type EnumItem

type EnumItem struct {
	Name                string
	Value               int
	Index               int // Index determines the item's order among its sibling items.
	LegacyNames         []string
	PreferredDescriptor PreferredDescriptor
	Tags
}

EnumItem represents an enum item.

func (*EnumItem) Copy

func (item *EnumItem) Copy() *EnumItem

Copy returns a deep copy of the enum item.

func (*EnumItem) Fields added in v0.2.0

func (item *EnumItem) Fields(fields Fields) Fields

Fields implements the Fielder interface.

func (*EnumItem) SetFields added in v0.2.0

func (item *EnumItem) SetFields(fields Fields)

SetFields implements the Fielder interface.

type Event

type Event struct {
	Name                string
	Parameters          []Parameter
	Security            string
	ThreadSafety        string
	PreferredDescriptor PreferredDescriptor
	Tags
}

Event is a Member that represents a class event.

func (*Event) Copy added in v0.2.0

func (member *Event) Copy() *Event

Copy returns a deep copy of the event.

func (*Event) Fields added in v0.2.0

func (member *Event) Fields(fields Fields) Fields

Fields implements the Fielder interface.

func (*Event) MarshalJSON added in v0.10.1

func (member *Event) MarshalJSON() ([]byte, error)

func (*Event) MemberCopy added in v0.2.0

func (member *Event) MemberCopy() Member

MemberCopy returns a deep copy of the member.

MemberType implements the Member interface.

func (*Event) MemberName added in v0.2.0

func (member *Event) MemberName() string

MemberName returns the name of the member.

MemberType implements the Member interface.

func (*Event) MemberType added in v0.2.0

func (member *Event) MemberType() string

MemberType returns a string indicating the the type of member.

MemberType implements the Member interface.

func (*Event) SetFields added in v0.2.0

func (member *Event) SetFields(fields Fields)

SetFields implements the Fielder interface.

type Fielder added in v0.2.0

type Fielder interface {
	// Fields populates f with the fields of the value that are present in f.
	// Fields that are not present in the value are deleted from f. If f is nil,
	// then a new Fields is created and populated with all fields. Returns the
	// populated Fields.
	//
	// Must include only fields that are expected to be diffed and patched.
	//
	// Implementations may retain returned values.
	Fields(f Fields) Fields
	// SetFields receives fields from f and sets them on the value. Irrelevant
	// fields are ignored.
	//
	// If possible, SetFields may convert any type to the field's canonical
	// type. At a minimu, the implemntation must convert the field's type, and a
	// general interface representation, according to the json package.
	//
	// Implementations must not retain received values; they should be copied if
	// necessary.
	SetFields(f Fields)
}

Fielder is implemented by any value that can get and set its fields from a Fields map.

type Fields added in v0.2.0

type Fields map[string]any

Fields describes a set of names mapped to values, for the purpose of diffing and patching fields of an element. Entries may be set and deleted, but values must not be modified.

type Function

type Function struct {
	Name                string
	Parameters          []Parameter
	ReturnType          []Type
	Security            string
	ThreadSafety        string
	PreferredDescriptor PreferredDescriptor
	Tags
}

Function is a Member that represents a class function.

func (*Function) Copy added in v0.2.0

func (member *Function) Copy() *Function

Copy returns a deep copy of the function.

func (*Function) Fields added in v0.2.0

func (member *Function) Fields(fields Fields) Fields

Fields implements the Fielder interface.

func (*Function) MarshalJSON added in v0.10.1

func (member *Function) MarshalJSON() ([]byte, error)

func (*Function) MemberCopy added in v0.2.0

func (member *Function) MemberCopy() Member

MemberCopy returns a deep copy of the member.

MemberType implements the Member interface.

func (*Function) MemberName added in v0.2.0

func (member *Function) MemberName() string

MemberName returns the name of the member.

MemberType implements the Member interface.

func (*Function) MemberType added in v0.2.0

func (member *Function) MemberType() string

MemberType returns a string indicating the the type of member.

MemberType implements the Member interface.

func (*Function) SetFields added in v0.2.0

func (member *Function) SetFields(fields Fields)

SetFields implements the Fielder interface.

type Member

type Member interface {
	Fielder
	Tagger

	// MemberType returns a string indicating the type of member.
	MemberType() string
	// MemberName returns the name of the member.
	MemberName() string
	// MemberCopy returns a deep copy of the member.
	MemberCopy() Member
	// contains filtered or unexported methods
}

Member represents a member of a Class.

type Parameter

type Parameter struct {
	Type     Type
	Name     string
	Optional bool
	Default  string
}

Parameter represents a parameter of a function, event, or callback member.

func CopyParams added in v0.2.0

func CopyParams(p []Parameter) []Parameter

CopyParams returns a copy of the given parameters.

type PreferredDescriptor added in v0.7.0

type PreferredDescriptor struct {
	// The name of the alternative descriptor.
	Name         string
	ThreadSafety string
}

PreferredDescriptor refers to an alternative of a deprecated descriptor.

type Property

type Property struct {
	Name                string
	ValueType           Type
	Default             string
	Category            string
	ReadSecurity        string
	WriteSecurity       string
	CanLoad             bool
	CanSave             bool
	ThreadSafety        string
	PreferredDescriptor PreferredDescriptor
	Tags
}

Property is a Member that represents a class property.

func (*Property) Copy added in v0.2.0

func (member *Property) Copy() *Property

Copy returns a deep copy of the property.

func (*Property) Fields added in v0.2.0

func (member *Property) Fields(fields Fields) Fields

func (*Property) MarshalJSON added in v0.10.1

func (member *Property) MarshalJSON() ([]byte, error)

func (*Property) MemberCopy added in v0.2.0

func (member *Property) MemberCopy() Member

MemberCopy returns a deep copy of the member.

MemberType implements the Member interface.

func (*Property) MemberName added in v0.2.0

func (member *Property) MemberName() string

MemberName returns the name of the member.

MemberType implements the Member interface.

func (*Property) MemberType added in v0.2.0

func (member *Property) MemberType() string

MemberType returns a string indicating the the type of member.

MemberType implements the Member interface.

func (*Property) SetFields added in v0.2.0

func (member *Property) SetFields(fields Fields)

type Root

type Root struct {
	Classes map[string]*Class
	Enums   map[string]*Enum
}

Root represents the top-level structure of an API dump.

func (*Root) Copy

func (root *Root) Copy() *Root

Copy returns a deep copy of the root.

func (*Root) GetClasses

func (root *Root) GetClasses() []*Class

GetClasses returns the Classes in the root as a slice, ordered by name.

func (*Root) GetEnums

func (root *Root) GetEnums() []*Enum

GetEnums returns the Enums in the root as a slice, ordered by name.

type Tagger added in v0.2.0

type Tagger interface {
	// GetTag returns whether the given tag is present.
	GetTag(tag string) bool
	// GetTags returns a list of all present tags. Implementations must not
	// retain the result.
	GetTags() []string
	// SetTag adds one or more tags. Duplicate tags are removed.
	SetTag(tag ...string)
	// UnsetTag removes one or more tags. Duplicate tags are removed.
	UnsetTag(tag ...string)
}

Tagger is implemented by any value that contains a set of tags.

type Tags added in v0.2.0

type Tags []string

Tags implements a Tagger, to be embedded by taggable elements.

func (Tags) GetTag added in v0.2.0

func (tags Tags) GetTag(tag string) bool

GetTag returns whether the given tag is present.

func (Tags) GetTags added in v0.2.0

func (tags Tags) GetTags() []string

GetTags returns a list of all present tags.

func (*Tags) SetTag added in v0.2.0

func (tags *Tags) SetTag(tag ...string)

SetTag adds one or more tags. Duplicate tags are removed.

func (*Tags) UnsetTag added in v0.2.0

func (tags *Tags) UnsetTag(tag ...string)

UnsetTag removes one or more tags. Duplicate tags are removed.

type Type

type Type struct {
	Category string
	Name     string
	Optional bool `json:",omitempty"`
}

Type represents a value type.

func (Type) String

func (typ Type) String() string

String returns a string representation of the type.

Directories

Path Synopsis
The diff package provides operations for diffing and patching rbxdump structures.
The diff package provides operations for diffing and patching rbxdump structures.
The json package is used to serialize between rbxdump and Roblox JSON API dump format.
The json package is used to serialize between rbxdump and Roblox JSON API dump format.
The legacy package is used to serialize between rbxdump and Roblox legacy API dump format.
The legacy package is used to serialize between rbxdump and Roblox legacy API dump format.

Jump to

Keyboard shortcuts

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