io

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Index

Constants

This section is empty.

Variables

View Source
var MARSHALABLE = reflect.TypeOf((*Marshalable)(nil)).Elem()
View Source
var UNMARSHALABLE = reflect.TypeOf((*Unmarshalable)(nil)).Elem()

Functions

func Encode

func Encode(pieces ...interface{}) ([]byte, error)

func Filter

func Filter(s string, whitespaceAllowed bool) (filtered string)

func FromUnicode

func FromUnicode(r rune) int32

func Marshal

func Marshal(p *Packet, pieces ...interface{}) error

func MarshalValue

func MarshalValue(p *Packet, type_ reflect.Type, value reflect.Value) error

func SanitizeString

func SanitizeString(s string) string

SanitizeString returns the string, cleared of sauer color codes like \f3 for red.

func ToUnicode

func ToUnicode(cpoint int32) rune

func Unmarshal

func Unmarshal(p *Packet, pieces ...interface{}) error

func UnmarshalValue

func UnmarshalValue(p *Packet, type_ reflect.Type, valuePtr reflect.Value) error

Types

type Buffer

type Buffer []byte

Similar to game.Packet, but does not do any compression.

func (*Buffer) Get

func (p *Buffer) Get(pieces ...interface{}) error

func (*Buffer) GetByte

func (p *Buffer) GetByte() (byte, bool)

func (*Buffer) GetBytes

func (p *Buffer) GetBytes(n int) ([]byte, bool)

func (*Buffer) GetFloat

func (p *Buffer) GetFloat() (float32, bool)

func (*Buffer) GetInt

func (p *Buffer) GetInt() (int32, bool)

func (*Buffer) GetShort

func (p *Buffer) GetShort() (uint16, bool)

func (*Buffer) GetString

func (p *Buffer) GetString() (string, bool)

func (*Buffer) GetStringByte

func (p *Buffer) GetStringByte() (string, bool)

func (*Buffer) Marshal

func (p *Buffer) Marshal(pieces ...interface{}) error

func (*Buffer) Put

func (p *Buffer) Put(pieces ...interface{}) error

func (*Buffer) Read

func (p *Buffer) Read(n []byte) (int, error)

func (*Buffer) Skip

func (p *Buffer) Skip(n int) bool

func (*Buffer) Unmarshal

func (p *Buffer) Unmarshal(pieces ...interface{}) error

type Marshalable

type Marshalable interface {
	Marshal(p *Packet) error
}

type Packet

type Packet []byte

Packet represents a Sauerbraten UDP packet.

func (*Packet) Get

func (p *Packet) Get(pieces ...interface{}) error

func (*Packet) GetByte

func (p *Packet) GetByte() (byte, bool)

func (*Packet) GetFloat

func (p *Packet) GetFloat() (float32, bool)

func (*Packet) GetInt

func (p *Packet) GetInt() (int32, bool)

GetInt returns the integer value encoded in the next byte(s) of the packet.

func (*Packet) GetString

func (p *Packet) GetString() (s string, ok bool)

GetString returns a string of the next bytes up to 0x00.

func (*Packet) GetUint

func (p *Packet) GetUint() (v uint32, ok bool)

func (*Packet) Put

func (p *Packet) Put(pieces ...interface{}) error

func (*Packet) PutByte

func (p *Packet) PutByte(s byte)

func (*Packet) PutFloat

func (p *Packet) PutFloat(v float32)

func (*Packet) PutInt

func (p *Packet) PutInt(v int32)

PutInt writes an int32 to the packet buffer.

func (*Packet) PutString

func (p *Packet) PutString(s string)

PutInt writes a string to the packet buffer, encoding it with Sauer's conversion table at the same time.

func (*Packet) PutUint

func (p *Packet) PutUint(v uint32)

PutUint writes a uint32 to the packet buffer. It only keeps the 28 lowest bits!

func (*Packet) Read

func (p *Packet) Read(n []byte) (int, error)

type RawPacket

type RawPacket struct {
	Channel uint8
	Data    []byte
}

type Unmarshalable

type Unmarshalable interface {
	Unmarshal(p *Packet) error
}

Jump to

Keyboard shortcuts

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