Strings - bali-nebula/go-component-framework GitHub Wiki

⚠️ This project is still under development and is for reference purposes only. If you are interested in this project or have suggestions on how to improve it feel free to contact us at [email protected].

Overview

A string is a type of primitive entity that consists of a sequence of elemental values that may be iterated over and converted to elements. Although each string is immutable, many string types provide functions that operate on one or more strings to produce new strings.

Click on a specific string type heading below to get design and implementation details for that string type.

Binaries

A binary string is a sequence of bytes representing arbitrary data. Binary strings are encoded using base 64 encoding so that they may be easily displayed in documents.

Click here for the Bali representation of binaries.

Bytecodes

Click here for the Bali representation of bytecodes.

Monikers

A moniker element resides in a global directory structure that uses standard filesystem notation (e.g. /bali/types/List/v1) to reference documents stored in the Bali Nebula™ in Bali Document Notation™. Some monikers:

Click here for the Bali representation of monikers.

Narratives

A narrative string element supports format preserving text strings embedded in double quotes. A narrative string begins with a double quote followed by an EOL character and is terminated by an EOL character followed by a double quote. Any character including double quotes may be part of a narrative string as long as the double quote is not the first non-white space character on a line (or this would terminate the narrative prematurely. An example narrative:

Click here for the Bali representation of narratives.

Quotes

A quote string element supports inline quoted strings embedded in double quotes.

Click here for the Bali representation of quotes.

Tags

A tag element defines a unique identifier that can guarantee that there will be no collisions between it and other tags, and makes the tags impossible to guess. Each tag is an arbitrary number of bytes long and is encoded using base 32 characters.

Click here for the Bali representation of tags.

Symbols

A symbol element is used to refer to a symbol in Bali Document Notation™. Symbol elements can be iterated over.

Click here for the Bali representation of symbols.

Versions

A version element represents a version string (e.g. v1.2.3) in a way that makes it easy to manipulate specific version levels and enforces ordinal numbering of each level (i.e. no zeros allowed). Version elements can be iterated over.

Click here for the Bali representation of versions.