Scalqa features a unified value container framework, which includes traditional collections and other value holding objects like: stream, property, option, etc.

All containers are designed with a single vision, have consistent naming, are interoperable and (in most cases) specializable for primitives.

Value Container Framework

Top level collections include:

  • Collection is the framework root trait
  • Idx is index accessible collection of values (trait)
  • Lookup is key accessible collection of values (trait)
  • Buffer is growable indexed collection (class)
  • >< is immutable pack of values, indexed collection (class)

Top level non-collections include:

  • ~ - stream of values interface
  • <> - abstract range of values
  • Pro - value provider (holds a single value)
  • Opt - value option (holds value or is empty)
  • Result - value result (holds value or problem)
  • Promise - future calculated value