BaseInterfaces reference

Docstrings

BaseInterfaces.ArrayInterfaceType
    ArrayInterface

An Interfaces.jl Interface with mandatory components (:eltype, :ndims, :size, :getindex, :indexstyle) and optional components (:logical, :setindex!, :similar_type, :similar_eltype, :similar_size, :similar_eltype_size).

Base Julia AbstractArray interface

Extended help

Mandatory keys:

  • eltype
  • ndims
  • size:
    • size(A) returns a tuple of Integer
    • length of size(A) matches ndims(A)
  • getindex:
    • Can index with begin/firstindex
    • Can index with end/lastindex
    • Can index with all indices in eachindex(A)
    • Can index with Int for multiple dimensions
    • Can index with Int for multiple dimensions and trailing ones
    • Can index with Int for multiple dimensions and trailing colons
    • Can index with CartesianIndex
    • Can index with CartesianIndex and trailing ones
    • Can index with CartesianIndices
    • Can index with CartesianIndices and trailing ones
    • Can index with CartesianIndices and trailing colons
    • Can index with UnitRange
    • Can index with UnitRange and trailing ones
    • Can index with UnitRange and trailing colons
    • Can index with StepRange
    • Can index with StepRange and trailing ones
    • Can index with StepRange and trailing colons
    • Can index with a Vector of Int
    • Can index with a Vector of Int32
    • Can index with a Vector of Int with trailing ones
    • Can index with a Vector of Int with trailing colons
  • indexstyle: IndexStyle returns IndexCartesian or IndexLinear

Optional keys:

  • logical:
    • Can index with logical indices
    • Can index with logical indices and trailing ones
    • Can index with logical indices and trailing colons
    • Can index with multidimensional logical indices
    • Can index with multidimensional logical indices and trailing ones
    • Can index with multidimensional logical indices and trailing colons
  • setindex!
  • similar_type: similar(A) returns an object the same type and size as A
  • similar_eltype: similar(A, T::Type) returns an object the same base type as A with eltype of T
  • similar_size: similar(A, s::NTuple{Int}) returns an object the same type as A with size s
  • similar_eltype_size: similar(A, T::Type, s::NTuple{Int}) returns an object the same type as A with eltype T and size s
source
BaseInterfaces.DictInterfaceType
    DictInterface

An Interfaces.jl Interface with mandatory components (:iterate, :eltype, :keytype, :valtype, :keys, :values, :getindex) and optional components (:setindex!,).

AbstractDict interface requires Arguments, with d = the_dict mandatory, and when setindex is needed, k = any_valid_key_not_in_d, v = any_valid_val

Extended help

Mandatory keys:

  • iterate: AbstractDict follows the IterationInterface
  • eltype: eltype is a Pair
  • keytype
  • valtype
  • keys
  • values
  • getindex

Optional keys:

  • setindex!:
    • test object d does not yet have test key k
    • can set key k to value v
source
BaseInterfaces.IterationInterfaceType
    IterationInterface

An Interfaces.jl Interface with mandatory components (:iterate, :isiterable, :eltype, :size, :in) and optional components (:reverse, :indexing).

An interface for Base Julia iteration

Extended help

Mandatory keys:

  • iterate:
    • test iterator is not empty
    • iterate does not return nothing
    • iterate returns a Tuple
    • iterate returns a Tuple
  • isiterable
  • eltype
  • size
  • in

Optional keys:

  • reverse
  • indexing:
    • can call firstindex
    • can call lastindex
    • can call getindex
    • getindex matches iteration order
source
BaseInterfaces.SetInterfaceType
    SetInterface

An Interfaces.jl Interface with mandatory components (:isempty, :eltype, :length, :iteration, :in) and optional components (:copy, :empty, :hasfastin, :setdiff, :intersect, :union, :copymutable, :emptymutable, :empty!, :delete!, :push!, :sizehint!).

The AbstractSet interface

Extended help

Mandatory keys:

  • isempty: defines isempty and testdata is not empty
  • eltype: elements eltype of set s are subtypes of eltype(s)
  • length: set defines length and test object has length larger than zero
  • iteration: follows the IterationInterface
  • in: in is true for elements in set

Optional keys:

  • copy: creates an identical object with the same values, that is not the same object
  • empty:
    • returns an empty set able to hold elements of type U
    • returns an empty set able to hold elements of arbitrary types
  • hasfastin: hasfastin returns a Bool
  • setdiff:
    • setdiff with itself is an empty set of the same type
    • setdiff with an empty set is equal to itself
  • intersect:
    • intersect of set with itself is itself
    • intersect of set with an empty set is an empty set
  • union:
    • union of a set with itself equals itself
    • union of a set an empty set equals itself
  • copymutable: creates an identical mutable object with the same values, that is not the same object
  • emptymutable:
    • returns an empty set able to hold elements of type U
    • returns an empty set able to hold elements of arbitrary types
  • empty!: empty! removes all elements from the set
  • delete!: delete! removes element valued x of the set
  • push!: push! adds an element to the set
  • sizehint!: can set a size hint
source

Index