Header menu logo Nu

'a Address Type

Specifies the address of an identifiable value. OPTIMIZATION: Names is an array only for speed; it is invalid to mutate it. TODO: change Names to the proposed F# block type when available? TODO: have Address constructors throw in Debug mode on invalid address names or if ellipses (...) are used in the wrong place (not at the end).

Record fields

Record Field Description

Anonymous

Full Usage: Anonymous

Field type: bool
Field type: bool

HashCode

Full Usage: HashCode

Field type: int
Field type: int

Names

Full Usage: Names

Field type: string array
Field type: string array

Instance members

Instance member Description

this.Length

Full Usage: this.Length

Returns: int

Get the length of an address by its names.

Returns: int

this.Relative

Full Usage: this.Relative

Returns: bool

Get whether an address is relative, IE, starts with the current symbol '~' or the parent symbol '^'. Otherwise, the address is absolute.

Returns: bool

Static members

Static member Description

address --> address2

Full Usage: address --> address2

Parameters:
Returns: 't Address

Concatenate two addresses, taking the type of first address.

address : 't Address
address2 : 'u Address
Returns: 't Address

address -|- address2

Full Usage: address -|- address2

Parameters:
Returns: 't Address

Concatenate two addresses of the same type.

address : 't Address
address2 : 't Address
Returns: 't Address

address <-- address2

Full Usage: address <-- address2

Parameters:
Returns: 'u Address

Concatenate two addresses, taking the type of second address.

address : 't Address
address2 : 'u Address
Returns: 'u Address

Address.acat address address2

Full Usage: Address.acat address address2

Parameters:
Returns: 't Address

Concatenate two addresses of the same type.

address : 't Address
address2 : 't Address
Returns: 't Address

Address.acatf address address2

Full Usage: Address.acatf address address2

Parameters:
Returns: 't Address

Concatenate two addresses, taking the type of first address.

address : 't Address
address2 : 'u Address
Returns: 't Address

Address.acats address address2

Full Usage: Address.acats address address2

Parameters:
Returns: 'u Address

Concatenate two addresses, taking the type of second address.

address : 't Address
address2 : 'u Address
Returns: 'u Address

Address.allButLast address

Full Usage: Address.allButLast address

Parameters:
Returns: 'u Address

Take an address composed of all but the last name of an address.

address : 't Address
Returns: 'u Address

Address.anonymize address

Full Usage: Address.anonymize address

Parameters:
Returns: 't Address

Anonymize an address.

address : 't Address
Returns: 't Address

Address.assertAddressName name

Full Usage: Address.assertAddressName name

Parameters:
    name : string

Assert that an address name contains none of the invalid forms, specifically - [] is reserved as the empty address string / is reserved as the name separator

name : string

Address.assertIdentifierName name

Full Usage: Address.assertIdentifierName name

Parameters:
    name : string

Assert that an identifier name contains none of the invalid forms, specifically - [] is reserved as the empty address string / is reserved as the name separator * is reserved as the name wildcard ... is reserved as the address tail wildcard ^ is reserved as the parent symbol ~ is reserved as the current symbol

name : string

Address.atoa address

Full Usage: Address.atoa address

Parameters:
Returns: 'u Address

Convert an address of type 't to an address of type 'u.

address : 't Address
Returns: 'u Address

Address.atooa address

Full Usage: Address.atooa address

Parameters:
Returns: obj Address

Convert any address to an obj Address.

address : 't Address
Returns: obj Address

Address.atos address

Full Usage: Address.atos address

Parameters:
Returns: string

Convert an address into a string.

address : 't Address
Returns: string

Address.changeType address

Full Usage: Address.changeType address

Parameters:
Returns: 'u Address

Change the type of an address.

address : 't Address
Returns: 'u Address

Address.compare left right

Full Usage: Address.compare left right

Parameters:
Returns: int

Compare Addresses.

left : 't Address
right : 't Address
Returns: int

Address.current

Full Usage: Address.current

Returns: 'a Address

A relative address with the current symbol.

Returns: 'a Address

Address.ellipsis

Full Usage: Address.ellipsis

Returns: 'a Address

Make an absolute address with the address tail wildcard.

Returns: 'a Address

Address.empty

Full Usage: Address.empty

Returns: 'a Address

The empty address.

Returns: 'a Address

Address.equals left right

Full Usage: Address.equals left right

Parameters:
Returns: bool

Equate Addresses.

left : 't Address
right : 't Address
Returns: bool

Address.findIndex finder address

Full Usage: Address.findIndex finder address

Parameters:
    finder : string -> bool
    address : 'a Address

Returns: int

Find the index of a name

finder : string -> bool
address : 'a Address
Returns: int

Address.generalize address

Full Usage: Address.generalize address

Parameters:
Returns: obj Address

Convert any address to an obj Address.

address : 't Address
Returns: obj Address

Address.getHashCode address

Full Usage: Address.getHashCode address

Parameters:
Returns: int

Get the address's hash code.

address : 'a Address
Returns: int

Address.getName address

Full Usage: Address.getName address

Parameters:
Returns: string
Modifiers: inline

Get the name of an address.

address : 'a Address
Returns: string

Address.getNames address

Full Usage: Address.getNames address

Parameters:
Returns: string array
Modifiers: inline

Get the names of an address.

address : 'a Address
Returns: string array

Address.hash address

Full Usage: Address.hash address

Parameters:
Returns: int
Modifiers: inline

Hash an Address.

address : 't Address
Returns: int

Address.head address

Full Usage: Address.head address

Parameters:
Returns: string

Take the head of an address.

address : 'a Address
Returns: string

Address.indexOf name address

Full Usage: Address.indexOf name address

Parameters:
    name : string
    address : 'a Address

Returns: int

Find the index of a name

name : string
address : 'a Address
Returns: int

Address.isEmpty address

Full Usage: Address.isEmpty address

Parameters:
Returns: bool

Check that an address is devoid of names.

address : 'a Address
Returns: bool

Address.item index address

Full Usage: Address.item index address

Parameters:
Returns: string

Take a name of an address.

index : int
address : 'a Address
Returns: string

Address.itoa address

Full Usage: Address.itoa address

Parameters:
Returns: 't Address

Convert a weakly-typed Address interface into a strongly-typed address.

address : Address
Returns: 't Address

Address.last address

Full Usage: Address.last address

Parameters:
Returns: string

Take the last name of an address.

address : 'a Address
Returns: string

Address.length address

Full Usage: Address.length address

Parameters:
Returns: int

Get the length of an address by its names.

address : 't Address
Returns: int

Address.ltoa names

Full Usage: Address.ltoa names

Parameters:
    names : string list

Returns: 't Address

Convert a names list into an address.

names : string list
Returns: 't Address

Address.makeEmpty ()

Full Usage: Address.makeEmpty ()

Returns: 't Address

Make an empty address. NOTE: do not move this function as the AddressConverter's reflection code relies on it being exactly here!

Returns: 't Address

Address.makeFromArray names

Full Usage: Address.makeFromArray names

Parameters:
    names : string array

Returns: 't Address

Make an address from a list of names.

names : string array
Returns: 't Address

Address.makeFromInterface address

Full Usage: Address.makeFromInterface address

Parameters:
Returns: 't Address

Convert a weakly-typed Address interface into a strongly-typed address.

address : Address
Returns: 't Address

Address.makeFromList names

Full Usage: Address.makeFromList names

Parameters:
    names : string list

Returns: 't Address

Make an address from a list of names.

names : string list
Returns: 't Address

Address.makeFromName name

Full Usage: Address.makeFromName name

Parameters:
    name : string

Returns: 't Address

Make an address from a name.

name : string
Returns: 't Address

Address.makeFromSeq names

Full Usage: Address.makeFromSeq names

Parameters:
    names : string seq

Returns: 't Address

Make an address from a sequence of names.

names : string seq
Returns: 't Address

Address.makeFromString addressStr

Full Usage: Address.makeFromString addressStr

Parameters:
    addressStr : string

Returns: 't Address

Make an address from a '/' delimited string. NOTE: do not move this function as the AddressConverter's reflection code relies on it being exactly here!

addressStr : string
Returns: 't Address

Address.notEmpty address

Full Usage: Address.notEmpty address

Parameters:
Returns: bool

Check that an address has one or more names.

address : 'a Address
Returns: bool

Address.ntoa name

Full Usage: Address.ntoa name

Parameters:
    name : string

Returns: 't Address

Convert a single name into an address.

name : string
Returns: 't Address

Address.parent

Full Usage: Address.parent

Returns: 'a Address

A relative address with the parent symbol.

Returns: 'a Address

Address.qtoa names

Full Usage: Address.qtoa names

Parameters:
    names : string seq

Returns: 't Address

Convert a names sequence into an address.

names : string seq
Returns: 't Address

Address.relate source destination

Full Usage: Address.relate source destination

Parameters:
Returns: 'u Address

Relate the second address to the first. The given addresses must be absolute. When the given addresses share common ancestors, the result is a relative address. Otherwise, the result is an absolute address.

source : 't Address
destination : 'u Address
Returns: 'u Address

Address.relative address

Full Usage: Address.relative address

Parameters:
Returns: bool

Get whether an address is relative, IE, starts with the current symbol '~' or the parent symbol '^'. Otherwise, the address is absolute.

address : 't Address
Returns: bool

Address.resolve relation address

Full Usage: Address.resolve relation address

Parameters:
Returns: 'u Address

Resolve an address from the given relation and address. When both the relation and address are relative, the result is a relative address. Otherwise, the result is an absolute address.

relation : 'u Address
address : 't Address
Returns: 'u Address

Address.rtoa names

Full Usage: Address.rtoa names

Parameters:
    names : string array

Returns: 't Address

Convert a names array into an address.

names : string array
Returns: 't Address

Address.skip n address

Full Usage: Address.skip n address

Parameters:
Returns: 'u Address

Take an address composed of the name of an address minus a skipped amount of names.

n : int
address : 't Address
Returns: 'u Address

Address.specialize address

Full Usage: Address.specialize address

Parameters:
Returns: 't Address

Convert an obj address to any Address.

address : obj Address
Returns: 't Address

Address.stoa str

Full Usage: Address.stoa str

Parameters:
    str : string

Returns: 't Address

Convert a string into an address.

str : string
Returns: 't Address

Address.tail address

Full Usage: Address.tail address

Parameters:
Returns: 'u Address

Take the tail of an address.

address : 't Address
Returns: 'u Address

Address.take n address

Full Usage: Address.take n address

Parameters:
Returns: 'u Address

Take an address composed of the given number of names of an address.

n : int
address : 't Address
Returns: 'u Address

Address.tryGetName address

Full Usage: Address.tryGetName address

Parameters:
Returns: string option

Attempt to get the name of an address if it exists.

address : 'a Address
Returns: string option

Address.tryTake n address

Full Usage: Address.tryTake n address

Parameters:
Returns: 'u Address

Take an address composed of the given number of names of an address.

n : int
address : 't Address
Returns: 'u Address

Address.validateAddressName name

Full Usage: Address.validateAddressName name

Parameters:
    name : string

Returns: bool

Check that an address name contains none of the invalid forms, specifically - [] is reserved as the empty address string / is reserved as the name separator

name : string
Returns: bool

Address.validateIdentifierName name

Full Usage: Address.validateIdentifierName name

Parameters:
    name : string

Returns: bool

Check that an identifier name contains none of the invalid forms, specifically - [] is reserved as the empty address string / is reserved as the name separator * is reserved as the name wildcard ... is reserved as the address tail wildcard ^ is reserved as the parent symbol ~ is reserved as the current symbol

name : string
Returns: bool

Address.wildcard

Full Usage: Address.wildcard

Returns: 'a Address

Make an absolute address with the name wildcard.

Returns: 'a Address

Type something to start searching.