The binary-structures Reference Manual

This is the binary-structures Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 14:43:03 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 binary-structures

A library for reading, writing, and representing structures from binary representations

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://shinmera.github.io/binary-structures/

Source Control

(GIT https://github.com/shinmera/binary-structures.git)

Bug Tracker

https://github.com/shinmera/binary-structures/issues

License

zlib

Version

1.0.0

Dependencies
  • cffi (system).
  • babel (system).
  • nibbles (system).
  • trivial-extensible-sequences (system).
  • documentation-utils (system).
Source

binary-structures.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 binary-structures/binary-structures.asd

Source

binary-structures.asd.

Parent Component

binary-structures (system).

ASDF Systems

binary-structures.


3.1.3 binary-structures/toolkit.lisp

Dependency

package.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface
Internals

3.1.4 binary-structures/protocol.lisp

Dependency

toolkit.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface
Internals

3.1.5 binary-structures/standard-types.lisp

Dependency

protocol.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface

define-io-types (macro).


3.1.6 binary-structures/stream.lisp

Dependency

standard-types.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface

3.1.7 binary-structures/octet-vector.lisp

Dependency

stream.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface

3.1.8 binary-structures/foreign-pointer.lisp

Dependency

octet-vector.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).

Public Interface
Internals

3.1.9 binary-structures/documentation.lisp

Dependency

foreign-pointer.lisp (file).

Source

binary-structures.asd.

Parent Component

binary-structures (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.binary-structures.types

Source

package.lisp.


4.2 org.shirakumo.binary-structures

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: define-io-alias (name expansion)

Defines a type designator alias.

This is equivalent to
(define-io-parser name () (parse-io-type expansion))

See DEFINE-IO-PARSER

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-backend (name &optional supers &rest slots)

Defines a new IO-BACKEND class and registers it.

See IO-BACKEND (type)
See LIST-IO-BACKENDS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-backend-function (type io-backend io-type)

Generate a function that parses the given IO-TYPE under the given IO-BACKEND.

TYPE may be either :READ or :WRITE according to which the
corresponding function is generated.

See READ-DEFUN
See WRITE-DEFUN
See DEFINE-IO-FUNCTIONS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-dispatch (type lisp-type (value-var &rest runtime-args) &body body)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-dispatch-function (type io-type)

Generate a dispatch function that parses the given IO-TYPE.

TYPE may be either :READ or :WRITE according to which the corresponding function is generated.

See DEFINE-IO-DISPATCH
See DEFINE-IO-FUNCTIONS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-functions (io-type)

Generate all possible parsing functions for the given IO-TYPE.

See DEFINE-IO-BACKEND-FUNCTION
See DEFINE-IO-DISPATCH-FUNCTION

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-structure (name &body slots)

Define an IO-STRUCTURE type instance.

This will do the following:
1. Define a structure via DEFSTRUCT corresponding to the specified name and slots.
2. Define an IO-TYPE corresponding to the specified name and slots. 3. Define all associated functions via DEFINE-IO-FUNCTIONS.

Each slot in the body may be one of the following:
- An :INCLUDE expression, which causes the specified structure’s slots to be spliced in. If the :INCLUDE expression occurs first, the generated STRUCTURE-CLASS will be a subtype of the specified structure.
- A slot expression, which is structured like:
(NAME IO-TYPE-DESIGNATOR &key OFFSET SIZE ALIGN PAD) IO-TYPE-DESIGNATOR must be a designator for a type as parsed by PARSE-IO-TYPE. OFFSET is computed automatically based on the size of preceding slots. You may add padding with PAD, or ensure the slot offset is rounded up to a given alignment using ALIGN. You can also manually force a slot to take up more space via SIZE. - A symbol designating the name of an io-type which will be used to pad the structure out with the size of the type.

Note that IO-VALUEs (forms that aren’t designating IO-TYPEs and are instead used for their runtime value) are evaluated in a lexical environment with a SLOT macro bound. This macro either takes the name of a slot of the structure to read out, or some other value form and the names of the slots to resolve within. For example:

(SLOT FOO) ==> (SLOT-VALUE %current-structure ’FOO)
(SLOT (FOO) BAR) ==> (SLOT-VALUE (FOO) ’BAR)

Referring to prior slots allows you to dynamically size later slots or dispatch based on the type of an earlier slot’s value.

See IO-STRUCTURE (type)
See IO-STRUCTURE-SLOT (type)
See IO-STRUCTURE-MAGIC (type)
See DEFINE-IO-TYPE
See DEFINE-IO-FUNCTIONS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-type ((type name) &body initargs)

Define a new IO-TYPE instance under the given name.

The io type will be available at compile-time as well as run-time.

See IO-TYPE (type)
See IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-type-parser (designator lambda-list &body body)

Defines an IO type designator parsing function for the given type name.

This will cause both DESIGNATOR and (DESIGNATOR ...) to match as type designators and invoke your function to parse it to an IO-TYPE instance.

See PARSE-IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Macro: define-io-types (type &body combinators)

Shorthand macro to define different permutations of IO types.

See DEFINE-IO-TYPE

Package

org.shirakumo.binary-structures.

Source

standard-types.lisp.


5.1.2 Ordinary functions

Function: io-type (name &optional errorp)

Access the IO-TYPE instance associated with the given name.

When reading:
If there is no type of the given name and ERRORP is non-NIL, a condition of type NO-SUCH-IO-TYPE is signalled. The CONTINUE restart will cause a TOP-TYPE to be returned. The USE-VALUE restart may be used to supply an alternate type instance. If ERRORP is NIL, NIL is returned instead.

When setting:
If the value is NIL, the name is removed from the IO-TYPE directory.

See IO-TYPE (type)
See DEFINE-IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: (setf io-type) (name)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: list-io-backends ()

Returns a list of names of all known IO-BACKEND types.

See IO-BACKEND (type)
See DEFINE-IO-BACKEND

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: list-io-types ()

Returns a list of names of all known IO-TYPE instances.

See DEFINE-IO-TYPE
See IO-TYPE
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: remove-io-dispatch (type lisp-type)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: unspecific-p (&rest things)

Used to determine whether a value designates a static quantity.

If any of the THINGS is NIL, returns *
If any of the THINGS is not a number, returns the thing

Generally, * is used to designate an unknown quantity. Values that aren’t a number are runtime expressions that are unknown quantities at compile-time, to be resolved later.

Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.


5.1.3 Generic functions

Generic Reader: accepted (condition)

Returns the set of values that would be acceptable.

See UNKNOWN-VALUE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: accepted ((condition unknown-value))
Source

protocol.lisp.

Target Slot

accepted.

Generic Function: call-read-form (backend io-type)

Generate a form to call the reader function associated with the given IO-TYPE under the IO-BACKEND.

The form may only be valid within the context established by
READ-DEFUN of the same IO-BACKEND and may thus make use of local
variables and functions.

See READ-DEFUN
See IO-BACKEND
See IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: call-read-form ((backend io-foreign-pointer) (type io-type))
Source

foreign-pointer.lisp.

Method: call-read-form ((backend io-octet-vector) (type io-type))
Source

octet-vector.lisp.

Method: call-read-form ((backend io-stream) (type io-type))
Source

stream.lisp.

Generic Function: call-write-form (backend io-type value-variable)

Generate a form to call the writer function associated with the given IO-TYPE under the IO-BACKEND for the VALUE-VARIABLE.

The form may only be valid within the context established by
WRITE-DEFUN of the same IO-BACKEND and may thus make use of local
variables and functions.

See WRITE-DEFUN
See IO-BACKEND
See IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: call-write-form ((backend io-foreign-pointer) (type io-type) value-variable)
Source

foreign-pointer.lisp.

Method: call-write-form ((backend io-octet-vector) (type io-type) value-variable)
Source

octet-vector.lisp.

Method: call-write-form ((backend io-stream) (type io-type) value-variable)
Source

stream.lisp.

Generic Reader: cases (object)

Accesses the list of case forms.

Each entry in the list must be composed of a MATCH and a FORM.

See IO-CASE (type)
See IO-TYPECASE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: cases ((io-typecase io-typecase))

automatically generated reader method

Source

protocol.lisp.

Target Slot

cases.

Reader Method: cases ((io-case io-case))

automatically generated reader method

Source

protocol.lisp.

Target Slot

cases.

Generic Writer: (setf cases) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf cases) ((io-typecase io-typecase))

automatically generated writer method

Source

protocol.lisp.

Target Slot

cases.

Writer Method: (setf cases) ((io-case io-case))

automatically generated writer method

Source

protocol.lisp.

Target Slot

cases.

Generic Reader: constructor (object)

Accesses the name of the lisp structure constructor function.

See IO-STRUCTURE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: constructor ((io-structure io-structure))

automatically generated reader method

Source

protocol.lisp.

Target Slot

constructor.

Generic Writer: (setf constructor) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf constructor) ((io-structure io-structure))

automatically generated writer method

Source

protocol.lisp.

Target Slot

constructor.

Generic Function: default-value (io-type)

Returns a suitable lisp default value form for the given io-type.

See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Reader Method: default-value ((io-structure-magic io-structure-magic))

automatically generated reader method

Target Slot

default-value.

Method: default-value ((slot io-structure-slot))
Method: default-value ((type io-structure))
Method: default-value ((type io-value))
Method: default-value ((type io-case))
Method: default-value ((type io-string))
Method: default-value ((type io-vector))
Method: default-value ((type io-float))
Method: default-value ((type io-integer))
Method: default-value ((type top-type))
Method: default-value (type)
Generic Function: (setf default-value) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf default-value) ((type io-structure-magic))
Source

protocol.lisp.

Target Slot

default-value.

Method: (setf default-value) ((io-structure-magic io-structure-magic))

automatically generated writer method

Source

protocol.lisp.

Generic Reader: designator (condition)

Returns the designator of the io type.

See NO-SUCH-IO-TYPE

Package

org.shirakumo.binary-structures.

Methods
Reader Method: designator ((condition no-such-io-type))
Source

protocol.lisp.

Target Slot

designator.

Generic Reader: element-count (object)

Accesses the length of the IO-VECTOR.

This is a quantity (see SPECIFIC-P) and may thus be statically known, or be a form to determine the length of the vector at runtime.

If the form is the name of another IO-TYPE, the IO-TYPE is read/written to obtain the actual count.

Special attention must be given if the ELEMENT-COUNT of an IO-VECTOR is set to *, in which case the vector is said to consume all remaining available space in the storage. For IO-STRINGS, the * designates that the string should be null-terminated.

See IO-VECTOR (type)
See IO-STRING (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: element-count ((io-string io-string))

automatically generated reader method

Source

protocol.lisp.

Target Slot

element-count.

Reader Method: element-count ((io-vector io-vector))

automatically generated reader method

Source

protocol.lisp.

Target Slot

element-count.

Generic Writer: (setf element-count) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf element-count) ((io-string io-string))

automatically generated writer method

Source

protocol.lisp.

Target Slot

element-count.

Writer Method: (setf element-count) ((io-vector io-vector))

automatically generated writer method

Source

protocol.lisp.

Target Slot

element-count.

Generic Reader: element-offset (object)

Accesses the offset of each element in the IO-VECTOR.

This may be a form that, when evaluated under a lexical environment with I bound to the current index, yields an index at which the element starts. STRIDE may be an expression that yields the number of octets between any two elements in the sequence.

See IO-VECTOR (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: element-offset ((io-vector io-vector))

automatically generated reader method

Source

protocol.lisp.

Target Slot

element-offset.

Generic Writer: (setf element-offset) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf element-offset) ((io-vector io-vector))

automatically generated writer method

Source

protocol.lisp.

Target Slot

element-offset.

Generic Reader: element-type (object)

Accesses the type of each element in an IO-VECTOR.

The type should be some IO-TYPE designator and must be constant for every element.

See IO-VECTOR (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: element-type ((io-vector io-vector))

automatically generated reader method

Source

protocol.lisp.

Target Slot

element-type.

Generic Writer: (setf element-type) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf element-type) ((io-vector io-vector))

automatically generated writer method

Source

protocol.lisp.

Target Slot

element-type.

Generic Reader: encoding (object)

Accesses the encoding of the string.

The encoding also defines the byte order. Please see BABEL for the available encoding schemes.

See IO-STRING (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: encoding ((io-string io-string))

automatically generated reader method

Source

protocol.lisp.

Target Slot

encoding.

Generic Writer: (setf encoding) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf encoding) ((io-string io-string))

automatically generated writer method

Source

protocol.lisp.

Target Slot

encoding.

Generic Reader: end (condition)

Returns the maximum index of the storage backend.

This may be NIL if the index is not known.

See END-OF-STORAGE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: end ((condition end-of-storage))
Source

protocol.lisp.

Target Slot

end.

Generic Reader: form (object)

Accesses the form of the IO-VALUE.

See IO-VALUE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: form ((io-value io-value))

automatically generated reader method

Source

protocol.lisp.

Target Slot

form.

Generic Writer: (setf form) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf form) ((io-value io-value))

automatically generated writer method

Source

protocol.lisp.

Target Slot

form.

Generic Reader: index (condition)

Returns the index at which the storage condition occurred.

This may be NIL if the index is not known.

See END-OF-STORAGE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: index ((condition end-of-storage))
Source

protocol.lisp.

Target Slot

index.

Generic Function: index-form (backend)

Generate a form that returns the current index.

The form may only be valid within the context established by READ-DEFUN or WRITE-DEFUN of the same IO-BACKEND and may thus make use of local variables and functions.

See READ-DEFUN
See WRITE-DEFUN
See IO-BACKEND

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: index-form ((backend io-foreign-pointer))
Source

foreign-pointer.lisp.

Method: index-form ((backend io-octet-vector))
Source

octet-vector.lisp.

Method: index-form ((backend io-stream))
Source

stream.lisp.

Method: index-form :around ((backend io-backend))
Generic Function: initargs (io-type)

Returns a list of initargs to reconstruct this type class instance.

See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Method Combination

append.

Options

:most-specific-first

Methods
Method: initargs append ((type io-structure))
Method: initargs append ((type io-string))
Method: initargs append ((type io-vector))
Method: initargs append ((type io-integer))
Method: initargs append ((type numeric-type))
Method: initargs append ((type top-type))
Generic Function: lisp-type (io-type)

Returns a suitable lisp type expression for the given io-type.

See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: lisp-type ((slot io-structure-slot))
Method: lisp-type ((type io-structure))
Method: lisp-type ((type io-value))
Method: lisp-type ((type io-case))
Method: lisp-type ((type io-string))
Method: lisp-type ((type io-vector))
Method: lisp-type ((type io-float))
Method: lisp-type ((type io-integer))
Method: lisp-type ((type top-type))
Method: lisp-type (type)
Generic Reader: name (condition)

Returns the name associated with the object.

See NO-SUCH-SLOT (type)
See IO-STRUCTURE (type)
See IO-STRUCTURE-SLOT (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: name ((io-structure-slot io-structure-slot))

automatically generated reader method

Source

protocol.lisp.

Target Slot

name.

Reader Method: name ((io-structure io-structure))

automatically generated reader method

Source

protocol.lisp.

Target Slot

name.

Reader Method: name ((condition no-such-slot))
Source

protocol.lisp.

Target Slot

name.

Generic Writer: (setf name) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf name) ((io-structure-slot io-structure-slot))

automatically generated writer method

Source

protocol.lisp.

Target Slot

name.

Writer Method: (setf name) ((io-structure io-structure))

automatically generated writer method

Source

protocol.lisp.

Target Slot

name.

Generic Function: octet-size (io-type)

Returns an octet-size estimate for the given io-type.

Note that this may return an unspecific size.

See UNSPECIFIC-P
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Reader Method: octet-size ((io-structure-slot io-structure-slot))

automatically generated reader method

Target Slot

octet-size.

Method: octet-size ((type io-structure))
Method: octet-size ((type io-typecase))
Method: octet-size ((type io-value))
Method: octet-size ((type io-case))
Method: octet-size ((type io-string))
Method: octet-size ((type io-vector))
Reader Method: octet-size ((numeric-type numeric-type))

automatically generated reader method

Target Slot

octet-size.

Method: octet-size ((type top-type))
Method: octet-size (type)
Generic Writer: (setf octet-size) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf octet-size) ((io-structure-slot io-structure-slot))

automatically generated writer method

Source

protocol.lisp.

Target Slot

octet-size.

Writer Method: (setf octet-size) ((numeric-type numeric-type))

automatically generated writer method

Source

protocol.lisp.

Target Slot

octet-size.

Generic Reader: offset (object)

Accesses the octet index at which the object resides.

See IO-BACKEND
See IO-STRUCTURE-SLOT

Package

org.shirakumo.binary-structures.

Methods
Reader Method: offset ((io-structure-slot io-structure-slot))

automatically generated reader method

Source

protocol.lisp.

Target Slot

offset.

Reader Method: offset ((io-backend io-backend))

automatically generated reader method

Source

protocol.lisp.

Target Slot

offset.

Generic Writer: (setf offset) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf offset) ((io-structure-slot io-structure-slot))

automatically generated writer method

Source

protocol.lisp.

Target Slot

offset.

Writer Method: (setf offset) ((io-backend io-backend))

automatically generated writer method

Source

protocol.lisp.

Target Slot

offset.

Generic Reader: order (object)

Accesses the byte order of the type.

May be either :LITTLE-ENDIAN or :BIG-ENDIAN.

See NUMERIC-TYPE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: order ((numeric-type numeric-type))

automatically generated reader method

Source

protocol.lisp.

Target Slot

order.

Generic Writer: (setf order) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf order) ((numeric-type numeric-type))

automatically generated writer method

Source

protocol.lisp.

Target Slot

order.

Generic Function: parse-io-type (type &rest args)

Parse the given type designator with the arguments to an IO-TYPE instance.

See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: parse-io-type ((type (eql typecase)) &rest args0)
Method: parse-io-type ((type cons) &rest args)
Method: parse-io-type ((type (eql case)) &rest args0)
Method: parse-io-type ((type (eql string)) &rest args0)
Method: parse-io-type ((type (eql vector)) &rest args0)
Method: parse-io-type ((type (eql float)) &rest args0)
Method: parse-io-type ((type (eql integer)) &rest args0)
Method: parse-io-type ((type symbol) &rest args)
Method: parse-io-type ((type io-type) &rest args)
Generic Function: read-defun (backend io-type)

Generate a reader function definition form for the given IO-TYPE under the IO-BACKEND.

This does not necessarily have to be a direct DEFUN form, but must
when evaluated have the effect of defining such a function.

Within the function definition, a call to READ-FORM of the given
IO-TYPE and IO-BACKEND must occur to provide the function’s
logic.

See READ-FORM
See IO-TYPE
See IO-BACKEND

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: read-defun ((backend io-foreign-pointer) (type io-type))
Source

foreign-pointer.lisp.

Method: read-defun ((backend io-octet-vector) (type io-type))
Source

octet-vector.lisp.

Method: read-defun ((backend io-stream) (type io-type))
Source

stream.lisp.

Method: read-defun :before ((backend io-backend) io-type)
Method: read-defun (backend io-type)
Method: read-defun ((backend symbol) io-type)
Generic Function: read-form (backend io-type)

Generate a form suitable for reading the given IO-TYPE under the IO-BACKEND.

The form may only be valid within the context established by
READ-DEFUN of the same IO-BACKEND and may thus make use of local variables and functions.

It is expected that backends add methods to this function for all primitive types, and methods for compound types that may be more efficient than the generic variants provided by the default IO-BACKEND method.

See READ-DEFUN
See IO-BACKEND
See IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: read-form ((backend io-foreign-pointer) (type io-float))
Source

foreign-pointer.lisp.

Method: read-form ((backend io-foreign-pointer) (type io-integer))
Source

foreign-pointer.lisp.

Method: read-form ((backend io-octet-vector) (type io-vector))
Source

octet-vector.lisp.

Method: read-form ((backend io-octet-vector) (type io-float))
Source

octet-vector.lisp.

Method: read-form ((backend io-octet-vector) (type io-integer))
Source

octet-vector.lisp.

Method: read-form ((backend io-stream) (type io-vector))
Source

stream.lisp.

Method: read-form ((backend io-stream) (type io-float))
Source

stream.lisp.

Method: read-form ((backend io-stream) (type io-integer))
Source

stream.lisp.

Method: read-form ((backend bounds-checked-io-backend) (type io-vector))
Method: read-form ((backend bounds-checked-io-backend) (type io-structure))
Method: read-form ((backend io-backend) (type io-structure-magic))
Method: read-form ((backend io-backend) (type io-structure-slot))
Method: read-form ((backend io-backend) (type io-structure))
Method: read-form :around ((backend io-backend) (type io-structure))
Method: read-form ((backend io-backend) (type io-typecase))
Method: read-form ((backend io-backend) (type io-value))
Method: read-form ((backend io-backend) (type io-case))
Method: read-form ((backend io-backend) (type io-string))
Method: read-form :around ((backend io-backend) (type io-vector))
Method: read-form ((backend io-backend) (type io-vector))
Method: read-form :after ((backend io-backend) (type numeric-type))
Method: read-form (backend io-type)
Method: read-form ((backend symbol) io-type)
Generic Function: seek-form (backend offset)

Generate a form that seeks to the requested offset.

OFFSET may be a number or a form. If the backend determines that seeking at this point in the generation to the requested offset is unnecessary, such as when OFFSET is a number and the current static offset as determined by the backend is the same, NIL may also be returned.

The form may only be valid within the context established by READ-DEFUN or WRITE-DEFUN of the same IO-BACKEND and may thus make use of local variables and functions.

See READ-DEFUN
See WRITE-DEFUN
See IO-BACKEND

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: seek-form ((backend io-foreign-pointer) offset)
Source

foreign-pointer.lisp.

Method: seek-form ((backend io-octet-vector) offset)
Source

octet-vector.lisp.

Method: seek-form ((backend io-stream) offset)
Source

stream.lisp.

Method: seek-form :around ((backend io-backend) offset)
Generic Reader: signed-p (object)

Accesses whether the integer type is signed or not.

See IO-INTEGER (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: signed-p ((io-integer io-integer))

automatically generated reader method

Source

protocol.lisp.

Target Slot

signed-p.

Generic Writer: (setf signed-p) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf signed-p) ((io-integer io-integer))

automatically generated writer method

Source

protocol.lisp.

Target Slot

signed-p.

Generic Reader: slots (object)

Accesses the list of IO-STRUCTURE-SLOTs that define the structure’s members.

See IO-STRUCTURE (type)
See IO-STRUCTURE-SLOT (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: slots ((io-structure io-structure))

automatically generated reader method

Source

protocol.lisp.

Target Slot

slots.

Generic Writer: (setf slots) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf slots) ((io-structure io-structure))

automatically generated writer method

Source

protocol.lisp.

Target Slot

slots.

Generic Reader: stride (object)

Accesses the stride between two elements in the IO-VECTOR.

This may be a form that, when evaluated, yields an integer representing the number of octets between the start of any two values in the sequence.

See IO-VECTOR (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: stride ((io-vector io-vector))

automatically generated reader method

Source

protocol.lisp.

Target Slot

stride.

Generic Writer: (setf stride) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf stride) ((io-vector io-vector))

automatically generated writer method

Source

protocol.lisp.

Target Slot

stride.

Generic Reader: struct (condition)

Returns the structure that the slot was searched in.

See NO-SUCH-SLOT (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: struct ((condition no-such-slot))
Source

protocol.lisp.

Target Slot

struct.

Generic Reader: value (condition)

Returns the value that failed the encoding/decoding.

See UNKNOWN-VALUE (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: value ((condition unknown-value))
Source

protocol.lisp.

Target Slot

value.

Generic Reader: value-type (object)

Accesses the IO-TYPE this type encapsulates.

See IO-CASE (type)
See IO-STRUCTURE (type)
See IO-STRUCTURE-SLOT (type)

Package

org.shirakumo.binary-structures.

Methods
Reader Method: value-type ((io-structure-slot io-structure-slot))

automatically generated reader method

Source

protocol.lisp.

Target Slot

value-type.

Reader Method: value-type ((io-structure io-structure))

automatically generated reader method

Source

protocol.lisp.

Target Slot

value-type.

Reader Method: value-type ((io-case io-case))

automatically generated reader method

Source

protocol.lisp.

Target Slot

value-type.

Generic Writer: (setf value-type) (object)
Package

org.shirakumo.binary-structures.

Methods
Writer Method: (setf value-type) ((io-structure-slot io-structure-slot))

automatically generated writer method

Source

protocol.lisp.

Target Slot

value-type.

Writer Method: (setf value-type) ((io-structure io-structure))

automatically generated writer method

Source

protocol.lisp.

Target Slot

value-type.

Writer Method: (setf value-type) ((io-case io-case))

automatically generated writer method

Source

protocol.lisp.

Target Slot

value-type.

Generic Function: write-defun (backend io-type)

Generate a writer function definition form for the given IO-TYPE under the IO-BACKEND.

This does not necessarily have to be a direct DEFUN form, but must
when evaluated have the effect of defining such a function.

Within the function definition, a call to WRITE-FORM of the given
IO-TYPE and IO-BACKEND must occur to provide the function’s
logic.

See WRITE-FORM
See IO-TYPE
See IO-BACKEND

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: write-defun ((backend io-foreign-pointer) (type io-type))
Source

foreign-pointer.lisp.

Method: write-defun ((backend io-octet-vector) (type io-type))
Source

octet-vector.lisp.

Method: write-defun ((backend io-stream) (type io-type))
Source

stream.lisp.

Method: write-defun :before ((backend io-backend) io-type)
Method: write-defun (backend io-type)
Method: write-defun ((backend symbol) io-type)
Generic Function: write-form (backend io-type value-variable)

Generate a form suitable for writing the value contained in VALUE-VARIABLE as the given IO-TYPE under the IO-BACKEND.

The form may only be valid within the context established by
WRITE-DEFUN of the same IO-BACKEND and may thus make use of local
variables and functions.

It is expected that backends add methods to this function for all
primitive types, and methods for compound types that may be more
efficient than the generic variants provided by the default IO-BACKEND
method.

See WRITE-DEFUN
See IO-BACKEND
See IO-TYPE

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: write-form ((backend io-foreign-pointer) (type io-float) value-variable)
Source

foreign-pointer.lisp.

Method: write-form ((backend io-foreign-pointer) (type io-integer) value-variable)
Source

foreign-pointer.lisp.

Method: write-form ((backend io-octet-vector) (type io-vector) value-variable)
Source

octet-vector.lisp.

Method: write-form ((backend io-octet-vector) (type io-float) value-variable)
Source

octet-vector.lisp.

Method: write-form ((backend io-octet-vector) (type io-integer) value-variable)
Source

octet-vector.lisp.

Method: write-form ((backend io-stream) (type io-vector) value-variable)
Source

stream.lisp.

Method: write-form ((backend io-stream) (type io-float) value-variable)
Source

stream.lisp.

Method: write-form ((backend io-stream) (type io-integer) value-variable)
Source

stream.lisp.

Method: write-form ((backend bounds-checked-io-backend) (type io-vector) value-variable)
Method: write-form ((backend bounds-checked-io-backend) (type io-structure) value-variable)
Method: write-form ((backend io-backend) (type io-structure-magic) value-variable)
Method: write-form ((backend io-backend) (type io-structure-slot) value-variable)
Method: write-form ((backend io-backend) (type io-structure) value-variable)
Method: write-form :around ((backend io-backend) (type io-structure) value-variable)
Method: write-form ((backend io-backend) (type io-typecase) value)
Method: write-form ((backend io-backend) (type io-value) value)
Method: write-form ((backend io-backend) (type io-case) value)
Method: write-form ((backend io-backend) (type io-string) value-variable)
Method: write-form :around ((backend io-backend) (type io-vector) value-variable)
Method: write-form ((backend io-backend) (type io-vector) value-variable)
Method: write-form :after ((backend io-backend) (type numeric-type) value-variable)
Method: write-form (backend io-type value-variable)
Method: write-form ((backend symbol) io-type value-variable)

5.1.4 Standalone methods

Method: describe-object ((structure io-structure) stream)
Source

protocol.lisp.

Method: print-object ((io-vector io-vector) stream)
Source

protocol.lisp.

Method: print-object ((io-float io-float) stream)
Source

protocol.lisp.

Method: print-object ((io-structure-magic io-structure-magic) stream)
Source

protocol.lisp.

Method: print-object ((io-structure-slot io-structure-slot) stream)
Source

protocol.lisp.

Method: print-object ((io-structure io-structure) stream)
Source

protocol.lisp.

Method: print-object ((io-string io-string) stream)
Source

protocol.lisp.

Method: print-object ((io-integer io-integer) stream)
Source

protocol.lisp.

Method: shared-initialize :after ((type io-structure-magic) slots &key default-value)
Source

protocol.lisp.


5.1.5 Conditions

Condition: binary-structures-condition

Supertype for all conditions signalled by this library.

See NO-SUCH-IO-TYPE
See END-OF-STORAGE
See UNKNOWN-VALUE
See NO-SUCH-SLOT

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

condition.

Direct subclasses
Condition: end-of-storage

Error signalled when the backend is not large enough to contain the requested type.

See INDEX
See END
See BINARY-STRUCTURES-CONDITION (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: index
Initform

(quote nil)

Initargs

:index

Readers

index.

Writers

This slot is read-only.

Slot: end
Initform

(quote nil)

Initargs

:end

Readers

end.

Writers

This slot is read-only.

Condition: no-such-io-type

Error signalled when an undefined IO type is referenced.

See DESIGNATOR
See IO-TYPE (type)
See IO-TYPE
See BINARY-STRUCTURES-CONDITION (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses
Direct methods

designator.

Direct slots
Slot: designator
Initargs

:designator

Readers

designator.

Writers

This slot is read-only.

Condition: no-such-slot
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: struct
Initargs

:struct

Readers

struct.

Writers

This slot is read-only.

Condition: unknown-value

Error signalled when a value is encoded or decoded that was not declared in the type.

See VALUE
See ACCEPTED
See BINARY-STRUCTURES-CONDITION (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: value
Initargs

:value

Readers

value.

Writers

This slot is read-only.

Slot: accepted
Initargs

:accepted

Readers

accepted.

Writers

This slot is read-only.


5.1.6 Classes

Class: bounds-checked-io-backend

Class for IO-BACKENDs that require manual bounds checks.

A subclass of this must provide a CHECK-AVAILABLE-SPACE function of one argument (octets to be consumed) in the lexical environment of the functions defined via READ-DEFUN and WRITE-DEFUN.

See READ-DEFUN
See WRITE-DEFUN
See IO-BACKEND (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-backend.

Direct subclasses
Direct methods
Class: io-backend

Superclass for all storage backends supported by this library.

A backend must implement methods for the functions READ-DEFUN, WRITE-DEFUN, CALL-READ-FORM, CALL-WRITE-FORM, READ-FORM, WRITE-FORM, INDEX-FORM, and SEEK-FORM to emit the correct forms to decode or encode io types as appropriate for the backend.

The OFFSET slot is used to keep track of the current statically accumulated octet index as generated by emitted forms. This static slot offset is used to eliminate the spurious seeking operations.

See UNSPECIFIC-P
See OFFSET
See READ-DEFUN
See WRITE-DEFUN
See CALL-READ-FORM
See CALL-WRITE-FORM
See READ-FORM
See WRITE-FORM
See INDEX-FORM
See SEEK-FORM
See DEFINE-IO-BACKEND
See LIST-IO-BACKENDS
See DEFINE-IO-DISPATCH
See DEFINE-IO-BACKEND-FUNCTION
See DEFINE-IO-FUNCTIONS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: offset
Initform

0

Initargs

:offset

Readers

offset.

Writers

(setf offset).

Class: io-case

Representation of an enum-like value dispatch.

Each CASE must be a possible value of the VALUE-TYPE to match against and either a constant to use as the associated value or an IO-TYPE designator to describe how to parse the associated value.

This type parses from the representation

(CASE VALUE-TYPE (MATCH FORM)*)

For example:

(case uint8
(1 :linux)
(2 :windows)
(3 :darwin))

Defines a standard enum-like association. However, you may also use other IO-TYPEs in the FORM:

(case uint8
(1 image)
(2 music-track)
(3 video))

Note that in order for the inverse writing operation to work, the order of the entries matters and must usually be the reverse of what would naturally be listed. Meaning that if SUB is a subtype of SUPER, then SUPER must be listed /after/ SUB, or else SUPER will match both, causing SUB to never be hit.

See VALUE-TYPE
See CASES
See IO-TYPECASE (type)
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct methods
Direct slots
Slot: value-type
Initargs

:value-type

Readers

value-type.

Writers

(setf value-type).

Slot: cases
Initargs

:cases

Readers

cases.

Writers

(setf cases).

Class: io-float

Type class for floating point IO-TYPEs.

Only IEEE floating point values are represented, depending on implementation support with 2, 4, 8, and 16 octets.

This type parses from the representation

(FLOAT [OCTET-SIZE])

With OCTET-SIZE defaulting to 4.

The following shorthands are also defined:

FLOAT [16/32/64/128] [/-BE]

Where FLOAT16-BE designates a "16-bit short-float in big-endian" and FLOAT32 designates a "32-bit single-float in little-endian".

See NUMERIC-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

numeric-type.

Direct methods
Class: io-foreign-pointer

An IO-BACKEND for foreign / memory pointers.

You must pass in a SIZE along with the pointer that designates the number of octets available in the buffer.

See IO-BACKEND (type)

Package

org.shirakumo.binary-structures.

Source

foreign-pointer.lisp.

Direct superclasses

bounds-checked-io-backend.

Direct methods
Class: io-integer

Type class for integer IO-TYPEs.

If an integer is SIGNED-P, then its representation uses two’s complement to represent the sign.

This type parses from the representation

(INTEGER [OCTET-SIZE] [:SIGNED/:UNSIGNED] [ORDER])

The following shorthands are also defined:

[S/U] INT [8/16/32/64/128] [/-BE]

Where UINT16-BE designates an "unsigned 16-bit integer in big-endian" and SINT32 designates a "signed 32-bit integer in little-endian".

See NUMERIC-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

numeric-type.

Direct methods
Direct slots
Slot: signed-p
Initform

t

Initargs

:signed-p

Readers

signed-p.

Writers

(setf signed-p).

Class: io-octet-vector

An IO-BACKEND for octet / unsigned-byte 8 VECTORs.

Dispatches both from SIMPLE-ARRAYs and ARRAYs. In the latter case the array is copied to a SIMPLE-ARRAY first, however. You may pass both a START and END to designate a subsequence.

See IO-BACKEND (type)

Package

org.shirakumo.binary-structures.

Source

octet-vector.lisp.

Direct superclasses

bounds-checked-io-backend.

Direct methods
Class: io-stream

An IO-BACKEND for STREAMs.

Dispatches both from STREAMs and PATHNAMEs.

See IO-BACKEND (type)

Package

org.shirakumo.binary-structures.

Source

stream.lisp.

Direct superclasses

io-backend.

Direct methods
Class: io-string

Type class to represent a character string.

This type parses from the representation

(STRING ELEMENT-COUNT [ENCODING])

The encoding defaults to UTF-8.

See ELEMENT-COUNT
See ENCODING
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct methods
Direct slots
Slot: element-count
Initform

(quote *)

Initargs

:element-count

Readers

element-count.

Writers

(setf element-count).

Slot: encoding
Initform

:utf-8

Initargs

:encoding

Readers

encoding.

Writers

(setf encoding).

Class: io-structure

Representation of some structure composed out of multiple values.

See VALUE-TYPE
See CONSTRUCTOR
See SLOTS
See NAME
See FIND-SLOT
See DEFINE-IO-STRUCTURE
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct methods
Direct slots
Slot: value-type
Initargs

:value-type

Readers

value-type.

Writers

(setf value-type).

Slot: constructor
Initargs

:constructor

Readers

constructor.

Writers

(setf constructor).

Slot: slots
Initargs

:slots

Readers

slots.

Writers

(setf slots).

Slot: name
Initargs

:name

Readers

name.

Writers

(setf name).

Class: io-structure-magic

Representation of a constant / "magic" value within a structure or some padding.

If the VALUE-TYPE of the slot is known, a value of that type is
read. If the DEFAULT-VALUE is also known, the value is compared and if
not EQUALP, an error of type MAGIC-VALUE-MISMATCHED is signalled. If
the DEFAULT-VALUE is known but no explicit VALUE-TYPE is set, the DEFAULT-VALUE must be a STRING or OCTET-VECTOR, a sequence of
equivalent length of which is parsed for comparison. If a VALUE-TYPE
is known but no DEFAULT-VALUE, the value is simply discarded.

See IO-STRUCTURE-SLOT (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-structure-slot.

Direct methods
Direct slots
Slot: value-type
Slot: name
Slot: default-value
Initargs

:default-value

Readers

default-value.

Writers

(setf default-value).

Class: io-structure-slot

Representation of a single slot in an IO-STRUCTURE.

See VALUE-TYPE
See OCTET-SIZE
See OFFSET
See NAME
See IO-STRUCTURE-MAGIC (type)
See IO-STRUCTURE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct subclasses

io-structure-magic.

Direct methods
Direct slots
Slot: value-type
Initargs

:value-type

Readers

value-type.

Writers

(setf value-type).

Slot: octet-size
Initargs

:octet-size

Readers

octet-size.

Writers

(setf octet-size).

Slot: offset
Initargs

:offset

Readers

offset.

Writers

(setf offset).

Slot: name
Initargs

:name

Readers

name.

Writers

(setf name).

Class: io-type

Superclass for all known type classes for IO.

See READ-DEFUN
See WRITE-DEFUN
See CALL-READ-FORM
See CALL-WRITE-FORM
See READ-FORM
See WRITE-FORM
See LISP-TYPE
See DEFAULT-VALUE
See OCTET-SIZE
See READ-DEFUN
See WRITE-DEFUN
See CALL-READ-FORM
See CALL-WRITE-FORM
See READ-FORM
See WRITE-FORM
See INITARGS
See PARSE-IO-TYPE
See IO-TYPE
See DEFINE-IO-TYPE
See LIST-IO-TYPES
See DEFINE-IO-DISPATCH-FUNCTION
See DEFINE-IO-BACKEND-FUNCTION
See DEFINE-IO-FUNCTIONS

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct subclasses
Direct methods
Class: io-typecase

Representation of some runtime type dispatch.

This is useful to implement optional segments in an IO-TYPE or to dispatch parsing based on an earlier part of the parsing state.

See CASES
See IO-VALUE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-value.

Direct methods
Direct slots
Slot: cases
Initargs

:cases

Readers

cases.

Writers

(setf cases).

Class: io-value

Representation of some form used purely for its runtime value.

This always has an unknown real type and size, and is the default type representation for parsing any CONS-based IO-TYPE.

Meaning: (parse-io-type ’(foo)) ==> IO-VALUE

See FORM
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct subclasses

io-typecase.

Direct methods
Direct slots
Slot: form
Initargs

:form

Readers

form.

Writers

(setf form).

Class: io-vector

Type class to represent a sequence of other values.

This type parses from the representation

(VECTOR ELEMENT-TYPE [ELEMENT-COUNT] [ELEMENT-OFFSET])

See ELEMENT-TYPE
See ELEMENT-COUNT
See ELEMENT-OFFSET
See STRIDE
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct methods
Direct slots
Slot: element-type
Initform

(quote org.shirakumo.binary-structures:uint8)

Initargs

:element-type

Readers

element-type.

Writers

(setf element-type).

Slot: element-count
Initform

(quote *)

Initargs

:element-count

Readers

element-count.

Writers

(setf element-count).

Slot: element-offset
Initargs

:element-offset

Readers

element-offset.

Writers

(setf element-offset).

Slot: stride
Initargs

:stride

Readers

stride.

Writers

(setf stride).

Class: numeric-type

Type class for numerical IO-TYPEs.

Every numeric type has a fixed OCTET-SIZE and a byte ORDER, which defaults to :LITTLE-ENDIAN.

See OCTET-SIZE
See ORDER
See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct subclasses
Direct methods
Direct slots
Slot: octet-size
Initargs

:octet-size

Readers

octet-size.

Writers

(setf octet-size).

Slot: order
Initform

:little-endian

Initargs

:order

Readers

order.

Writers

(setf order).

Class: top-type

Type class for an ambiguous IO-TYPE.

See IO-TYPE (type)

Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

io-type.

Direct methods

5.1.7 Types

Type: index ()
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *io-backends*
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Special Variable: *io-dispatchers*
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Special Variable: *io-structure-inline*
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Special Variable: *io-types*
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.


5.2.2 Macros

Macro: define-print-object-method (type format &rest args)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.

Macro: define-typed-function (name args retval &body body)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.

Macro: read-mem (pointer type &optional octets)
Package

org.shirakumo.binary-structures.

Source

foreign-pointer.lisp.

Macro: write-mem (value pointer type &optional octets)
Package

org.shirakumo.binary-structures.

Source

foreign-pointer.lisp.


5.2.3 Ordinary functions

Function: copy-io-structure-object (instance)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: find-symbol* (package &rest args)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.

Function: intern* (&rest args)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.

Function: io-structure-object-p (object)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: make-io-structure-object (&key)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: parse-io-structure-slots (defs)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Function: reexport (symb pkg)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.

Function: truncate-text (text max-length)
Package

org.shirakumo.binary-structures.

Source

toolkit.lisp.


5.2.4 Generic functions

Generic Function: find-slot (name structure)

Returns the slot with the given name on the structure.

If no slot with the requested name exists on the structure, an error of type NO-SUCH-SLOT is signalled.

See IO-STRUCTURE (type)
See IO-STRUCTURE-SLOT (type)

Package

org.shirakumo.binary-structures.

Methods
Method: find-slot (name type)
Source

protocol.lisp.

Method: find-slot (name (structure io-structure))
Source

protocol.lisp.

Generic Function: octet-size-form (io-type value-variable)
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Methods
Method: octet-size-form ((slot io-structure-slot) value-variable)
Method: octet-size-form ((type io-structure) value-variable)
Method: octet-size-form ((type io-typecase) value-variable)
Method: octet-size-form ((type io-value) value-variable)
Method: octet-size-form ((type io-case) value-variable)
Method: octet-size-form ((type io-string) value-variable)
Method: octet-size-form ((type io-vector) value-variable)
Method: octet-size-form ((type io-type) value-variable)
Method: octet-size-form (type value-variable)

5.2.5 Structures

Structure: io-structure-object
Package

org.shirakumo.binary-structures.

Source

protocol.lisp.

Direct superclasses

structure-object.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   C   D   E   F   G   I   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

(
(setf cases): Public generic functions
(setf cases): Public generic functions
(setf cases): Public generic functions
(setf constructor): Public generic functions
(setf constructor): Public generic functions
(setf default-value): Public generic functions
(setf default-value): Public generic functions
(setf default-value): Public generic functions
(setf element-count): Public generic functions
(setf element-count): Public generic functions
(setf element-count): Public generic functions
(setf element-offset): Public generic functions
(setf element-offset): Public generic functions
(setf element-type): Public generic functions
(setf element-type): Public generic functions
(setf encoding): Public generic functions
(setf encoding): Public generic functions
(setf form): Public generic functions
(setf form): Public generic functions
(setf io-type): Public ordinary functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf octet-size): Public generic functions
(setf octet-size): Public generic functions
(setf octet-size): Public generic functions
(setf offset): Public generic functions
(setf offset): Public generic functions
(setf offset): Public generic functions
(setf order): Public generic functions
(setf order): Public generic functions
(setf signed-p): Public generic functions
(setf signed-p): Public generic functions
(setf slots): Public generic functions
(setf slots): Public generic functions
(setf stride): Public generic functions
(setf stride): Public generic functions
(setf value-type): Public generic functions
(setf value-type): Public generic functions
(setf value-type): Public generic functions
(setf value-type): Public generic functions

A
accepted: Public generic functions
accepted: Public generic functions

C
call-read-form: Public generic functions
call-read-form: Public generic functions
call-read-form: Public generic functions
call-read-form: Public generic functions
call-write-form: Public generic functions
call-write-form: Public generic functions
call-write-form: Public generic functions
call-write-form: Public generic functions
cases: Public generic functions
cases: Public generic functions
cases: Public generic functions
constructor: Public generic functions
constructor: Public generic functions
copy-io-structure-object: Private ordinary functions

D
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
default-value: Public generic functions
define-io-alias: Public macros
define-io-backend: Public macros
define-io-backend-function: Public macros
define-io-dispatch: Public macros
define-io-dispatch-function: Public macros
define-io-functions: Public macros
define-io-structure: Public macros
define-io-type: Public macros
define-io-type-parser: Public macros
define-io-types: Public macros
define-print-object-method: Private macros
define-typed-function: Private macros
describe-object: Public standalone methods
designator: Public generic functions
designator: Public generic functions

E
element-count: Public generic functions
element-count: Public generic functions
element-count: Public generic functions
element-offset: Public generic functions
element-offset: Public generic functions
element-type: Public generic functions
element-type: Public generic functions
encoding: Public generic functions
encoding: Public generic functions
end: Public generic functions
end: Public generic functions

F
find-slot: Private generic functions
find-slot: Private generic functions
find-slot: Private generic functions
find-symbol*: Private ordinary functions
form: Public generic functions
form: Public generic functions
Function, (setf io-type): Public ordinary functions
Function, copy-io-structure-object: Private ordinary functions
Function, find-symbol*: Private ordinary functions
Function, intern*: Private ordinary functions
Function, io-structure-object-p: Private ordinary functions
Function, io-type: Public ordinary functions
Function, list-io-backends: Public ordinary functions
Function, list-io-types: Public ordinary functions
Function, make-io-structure-object: Private ordinary functions
Function, parse-io-structure-slots: Private ordinary functions
Function, reexport: Private ordinary functions
Function, remove-io-dispatch: Public ordinary functions
Function, truncate-text: Private ordinary functions
Function, unspecific-p: Public ordinary functions

G
Generic Function, (setf cases): Public generic functions
Generic Function, (setf constructor): Public generic functions
Generic Function, (setf default-value): Public generic functions
Generic Function, (setf element-count): Public generic functions
Generic Function, (setf element-offset): Public generic functions
Generic Function, (setf element-type): Public generic functions
Generic Function, (setf encoding): Public generic functions
Generic Function, (setf form): Public generic functions
Generic Function, (setf name): Public generic functions
Generic Function, (setf octet-size): Public generic functions
Generic Function, (setf offset): Public generic functions
Generic Function, (setf order): Public generic functions
Generic Function, (setf signed-p): Public generic functions
Generic Function, (setf slots): Public generic functions
Generic Function, (setf stride): Public generic functions
Generic Function, (setf value-type): Public generic functions
Generic Function, accepted: Public generic functions
Generic Function, call-read-form: Public generic functions
Generic Function, call-write-form: Public generic functions
Generic Function, cases: Public generic functions
Generic Function, constructor: Public generic functions
Generic Function, default-value: Public generic functions
Generic Function, designator: Public generic functions
Generic Function, element-count: Public generic functions
Generic Function, element-offset: Public generic functions
Generic Function, element-type: Public generic functions
Generic Function, encoding: Public generic functions
Generic Function, end: Public generic functions
Generic Function, find-slot: Private generic functions
Generic Function, form: Public generic functions
Generic Function, index: Public generic functions
Generic Function, index-form: Public generic functions
Generic Function, initargs: Public generic functions
Generic Function, lisp-type: Public generic functions
Generic Function, name: Public generic functions
Generic Function, octet-size: Public generic functions
Generic Function, octet-size-form: Private generic functions
Generic Function, offset: Public generic functions
Generic Function, order: Public generic functions
Generic Function, parse-io-type: Public generic functions
Generic Function, read-defun: Public generic functions
Generic Function, read-form: Public generic functions
Generic Function, seek-form: Public generic functions
Generic Function, signed-p: Public generic functions
Generic Function, slots: Public generic functions
Generic Function, stride: Public generic functions
Generic Function, struct: Public generic functions
Generic Function, value: Public generic functions
Generic Function, value-type: Public generic functions
Generic Function, write-defun: Public generic functions
Generic Function, write-form: Public generic functions

I
index: Public generic functions
index: Public generic functions
index-form: Public generic functions
index-form: Public generic functions
index-form: Public generic functions
index-form: Public generic functions
index-form: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
initargs: Public generic functions
intern*: Private ordinary functions
io-structure-object-p: Private ordinary functions
io-type: Public ordinary functions

L
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
list-io-backends: Public ordinary functions
list-io-types: Public ordinary functions

M
Macro, define-io-alias: Public macros
Macro, define-io-backend: Public macros
Macro, define-io-backend-function: Public macros
Macro, define-io-dispatch: Public macros
Macro, define-io-dispatch-function: Public macros
Macro, define-io-functions: Public macros
Macro, define-io-structure: Public macros
Macro, define-io-type: Public macros
Macro, define-io-type-parser: Public macros
Macro, define-io-types: Public macros
Macro, define-print-object-method: Private macros
Macro, define-typed-function: Private macros
Macro, read-mem: Private macros
Macro, write-mem: Private macros
make-io-structure-object: Private ordinary functions
Method, (setf cases): Public generic functions
Method, (setf cases): Public generic functions
Method, (setf constructor): Public generic functions
Method, (setf default-value): Public generic functions
Method, (setf default-value): Public generic functions
Method, (setf element-count): Public generic functions
Method, (setf element-count): Public generic functions
Method, (setf element-offset): Public generic functions
Method, (setf element-type): Public generic functions
Method, (setf encoding): Public generic functions
Method, (setf form): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf octet-size): Public generic functions
Method, (setf octet-size): Public generic functions
Method, (setf offset): Public generic functions
Method, (setf offset): Public generic functions
Method, (setf order): Public generic functions
Method, (setf signed-p): Public generic functions
Method, (setf slots): Public generic functions
Method, (setf stride): Public generic functions
Method, (setf value-type): Public generic functions
Method, (setf value-type): Public generic functions
Method, (setf value-type): Public generic functions
Method, accepted: Public generic functions
Method, call-read-form: Public generic functions
Method, call-read-form: Public generic functions
Method, call-read-form: Public generic functions
Method, call-write-form: Public generic functions
Method, call-write-form: Public generic functions
Method, call-write-form: Public generic functions
Method, cases: Public generic functions
Method, cases: Public generic functions
Method, constructor: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, default-value: Public generic functions
Method, describe-object: Public standalone methods
Method, designator: Public generic functions
Method, element-count: Public generic functions
Method, element-count: Public generic functions
Method, element-offset: Public generic functions
Method, element-type: Public generic functions
Method, encoding: Public generic functions
Method, end: Public generic functions
Method, find-slot: Private generic functions
Method, find-slot: Private generic functions
Method, form: Public generic functions
Method, index: Public generic functions
Method, index-form: Public generic functions
Method, index-form: Public generic functions
Method, index-form: Public generic functions
Method, index-form: Public generic functions
Method, initargs: Public generic functions
Method, initargs: Public generic functions
Method, initargs: Public generic functions
Method, initargs: Public generic functions
Method, initargs: Public generic functions
Method, initargs: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, octet-size-form: Private generic functions
Method, offset: Public generic functions
Method, offset: Public generic functions
Method, order: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, parse-io-type: Public generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, read-defun: Public generic functions
Method, read-defun: Public generic functions
Method, read-defun: Public generic functions
Method, read-defun: Public generic functions
Method, read-defun: Public generic functions
Method, read-defun: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, read-form: Public generic functions
Method, seek-form: Public generic functions
Method, seek-form: Public generic functions
Method, seek-form: Public generic functions
Method, seek-form: Public generic functions
Method, shared-initialize: Public standalone methods
Method, signed-p: Public generic functions
Method, slots: Public generic functions
Method, stride: Public generic functions
Method, struct: Public generic functions
Method, value: Public generic functions
Method, value-type: Public generic functions
Method, value-type: Public generic functions
Method, value-type: Public generic functions
Method, write-defun: Public generic functions
Method, write-defun: Public generic functions
Method, write-defun: Public generic functions
Method, write-defun: Public generic functions
Method, write-defun: Public generic functions
Method, write-defun: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions
Method, write-form: Public generic functions

N
name: Public generic functions
name: Public generic functions
name: Public generic functions
name: Public generic functions

O
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
octet-size-form: Private generic functions
offset: Public generic functions
offset: Public generic functions
offset: Public generic functions
order: Public generic functions
order: Public generic functions

P
parse-io-structure-slots: Private ordinary functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
parse-io-type: Public generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods

R
read-defun: Public generic functions
read-defun: Public generic functions
read-defun: Public generic functions
read-defun: Public generic functions
read-defun: Public generic functions
read-defun: Public generic functions
read-defun: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-form: Public generic functions
read-mem: Private macros
reexport: Private ordinary functions
remove-io-dispatch: Public ordinary functions

S
seek-form: Public generic functions
seek-form: Public generic functions
seek-form: Public generic functions
seek-form: Public generic functions
seek-form: Public generic functions
shared-initialize: Public standalone methods
signed-p: Public generic functions
signed-p: Public generic functions
slots: Public generic functions
slots: Public generic functions
stride: Public generic functions
stride: Public generic functions
struct: Public generic functions
struct: Public generic functions

T
truncate-text: Private ordinary functions

U
unspecific-p: Public ordinary functions

V
value: Public generic functions
value: Public generic functions
value-type: Public generic functions
value-type: Public generic functions
value-type: Public generic functions
value-type: Public generic functions

W
write-defun: Public generic functions
write-defun: Public generic functions
write-defun: Public generic functions
write-defun: Public generic functions
write-defun: Public generic functions
write-defun: Public generic functions
write-defun: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-form: Public generic functions
write-mem: Private macros


A.3 Variables

Jump to:   *  
A   C   D   E   F   I   N   O   S   V  
Index Entry  Section

*
*io-backends*: Private special variables
*io-dispatchers*: Private special variables
*io-structure-inline*: Private special variables
*io-types*: Private special variables

A
accepted: Public conditions

C
cases: Public classes
cases: Public classes
constructor: Public classes

D
default-value: Public classes
designator: Public conditions

E
element-count: Public classes
element-count: Public classes
element-offset: Public classes
element-type: Public classes
encoding: Public classes
end: Public conditions

F
form: Public classes

I
index: Public conditions

N
name: Public conditions
name: Public classes
name: Public classes
name: Public classes

O
octet-size: Public classes
octet-size: Public classes
offset: Public classes
offset: Public classes
order: Public classes

S
signed-p: Public classes
Slot, accepted: Public conditions
Slot, cases: Public classes
Slot, cases: Public classes
Slot, constructor: Public classes
Slot, default-value: Public classes
Slot, designator: Public conditions
Slot, element-count: Public classes
Slot, element-count: Public classes
Slot, element-offset: Public classes
Slot, element-type: Public classes
Slot, encoding: Public classes
Slot, end: Public conditions
Slot, form: Public classes
Slot, index: Public conditions
Slot, name: Public conditions
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, octet-size: Public classes
Slot, octet-size: Public classes
Slot, offset: Public classes
Slot, offset: Public classes
Slot, order: Public classes
Slot, signed-p: Public classes
Slot, slots: Public classes
Slot, stride: Public classes
Slot, struct: Public conditions
Slot, value: Public conditions
Slot, value-type: Public classes
Slot, value-type: Public classes
Slot, value-type: Public classes
Slot, value-type: Public classes
slots: Public classes
Special Variable, *io-backends*: Private special variables
Special Variable, *io-dispatchers*: Private special variables
Special Variable, *io-structure-inline*: Private special variables
Special Variable, *io-types*: Private special variables
stride: Public classes
struct: Public conditions

V
value: Public conditions
value-type: Public classes
value-type: Public classes
value-type: Public classes
value-type: Public classes


A.4 Data types

Jump to:   B   C   D   E   F   I   N   O   P   S   T   U  
Index Entry  Section

B
binary-structures: The binary-structures system
binary-structures-condition: Public conditions
binary-structures.asd: The binary-structures/binary-structures․asd file
bounds-checked-io-backend: Public classes

C
Class, bounds-checked-io-backend: Public classes
Class, io-backend: Public classes
Class, io-case: Public classes
Class, io-float: Public classes
Class, io-foreign-pointer: Public classes
Class, io-integer: Public classes
Class, io-octet-vector: Public classes
Class, io-stream: Public classes
Class, io-string: Public classes
Class, io-structure: Public classes
Class, io-structure-magic: Public classes
Class, io-structure-slot: Public classes
Class, io-type: Public classes
Class, io-typecase: Public classes
Class, io-value: Public classes
Class, io-vector: Public classes
Class, numeric-type: Public classes
Class, top-type: Public classes
Condition, binary-structures-condition: Public conditions
Condition, end-of-storage: Public conditions
Condition, no-such-io-type: Public conditions
Condition, no-such-slot: Public conditions
Condition, unknown-value: Public conditions

D
documentation.lisp: The binary-structures/documentation․lisp file

E
end-of-storage: Public conditions

F
File, binary-structures.asd: The binary-structures/binary-structures․asd file
File, documentation.lisp: The binary-structures/documentation․lisp file
File, foreign-pointer.lisp: The binary-structures/foreign-pointer․lisp file
File, octet-vector.lisp: The binary-structures/octet-vector․lisp file
File, package.lisp: The binary-structures/package․lisp file
File, protocol.lisp: The binary-structures/protocol․lisp file
File, standard-types.lisp: The binary-structures/standard-types․lisp file
File, stream.lisp: The binary-structures/stream․lisp file
File, toolkit.lisp: The binary-structures/toolkit․lisp file
foreign-pointer.lisp: The binary-structures/foreign-pointer․lisp file

I
index: Public types
io-backend: Public classes
io-case: Public classes
io-float: Public classes
io-foreign-pointer: Public classes
io-integer: Public classes
io-octet-vector: Public classes
io-stream: Public classes
io-string: Public classes
io-structure: Public classes
io-structure-magic: Public classes
io-structure-object: Private structures
io-structure-slot: Public classes
io-type: Public classes
io-typecase: Public classes
io-value: Public classes
io-vector: Public classes

N
no-such-io-type: Public conditions
no-such-slot: Public conditions
numeric-type: Public classes

O
octet-vector.lisp: The binary-structures/octet-vector․lisp file
org.shirakumo.binary-structures: The org․shirakumo․binary-structures package
org.shirakumo.binary-structures.types: The org․shirakumo․binary-structures․types package

P
Package, org.shirakumo.binary-structures: The org․shirakumo․binary-structures package
Package, org.shirakumo.binary-structures.types: The org․shirakumo․binary-structures․types package
package.lisp: The binary-structures/package․lisp file
protocol.lisp: The binary-structures/protocol․lisp file

S
standard-types.lisp: The binary-structures/standard-types․lisp file
stream.lisp: The binary-structures/stream․lisp file
Structure, io-structure-object: Private structures
System, binary-structures: The binary-structures system

T
toolkit.lisp: The binary-structures/toolkit․lisp file
top-type: Public classes
Type, index: Public types

U
unknown-value: Public conditions