Ferreteria/v0.6/clade/Sys/Data/Things/Array: Difference between revisions

From Woozle Writes Code
< Ferreteria‎ | v0.6‎ | clade‎ | Sys‎ | Data‎ | Things
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 13: Line 13:
&rarr; {{l/ver/clade|Sys\Data\Things\Array|QStor}}
&rarr; {{l/ver/clade|Sys\Data\Things\Array|QStor}}
|}
|}
==About==
===Concepts===
* An Array is always a Series (i.e. it retains order), but a Series is not necessarily an Array. (It could be more like a stream.)
* An Array always has a key, but sometimes the key is just a sequential number. A Keyed array is an Array with assigned key-values.
* (not implemented) A Flags[et] is a collection of boolean values, i.e. predefined items which are either present or absent
** It ''probably'' makes more sense to just implement these as integer constants defined with binary values, rather than a clade... unless you want a user-friendly readout? To be explored.
* (not implemented) An enum is a fixed set of values, and can represent each of those values individually. A wrapper for this could provide additional services not permitted by {{l/htyp|PHP/enum|PHP's enum implementaton}}.
===Clade structure===
''subject to revision while I think through the concepts (2025-08-16)''
* {{l/ver/clade|Sys/Data/Things|Array}}: clade which consolidates all the array-type interfaces and code
* Array-type interfaces & code (traits) which go into {{l/ver/clade|Sys/Data/Things|Array}}:
** {{l/ver/clade|Sys\Data\Things\Array\ifaces|Keyed}}
** {{l/ver/clade|Sys\Data\Things\Array\ifaces|Series}}
** {{l/ver/clade|Sys\Data\Things\Array\ifaces|Whole}}
* {{l/ver/clade|Sys\Data\Things\Array\ifaces|ARoot}}: tentatively, this stuff should all be in {{l/ver/clade|Sys/Data/Things|Array}}.
* To be explained:
** {{l/ver/clade|Sys\Data\Things\Array|DStor}} stuff:
*** interfaces:
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\D|Keyed}}
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\D|Series}}
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\D|Whole}}
*** podlings:
**** {{l/ver/clade|Sys\Data\Things\Array\DStor|AStr}}
**** {{l/ver/clade|Sys\Data\Things\Array\DStor|Pieces}}
***** {{l/ver/clade|Sys\Data\Things\Array\DStor\AStr|Row}}
** {{l/ver/clade|Sys\Data\Things\Array|QStor}} stuff:
*** interfaces:
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\Q|Keyed}}
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\Q|Series}}
**** {{l/ver/clade|Sys\Data\Things\Array\ifaces\Q|Whole}}
*** podlings:
**** {{l/ver/clade|Sys\Data\Things\Array\DStor|AObj}}
**** {{l/ver/clade|Sys\Data\Things\Array\DStor|Fields}}
==History==
* '''2025-08-15''' I keep getting muddled about how this is supposed to work, and therefore writing problematic code -- so, finally mapping it out conceptually.

Latest revision as of 14:12, 17 August 2025

clade: Sys\Data\Things\Array
Clade Family

StandardBase (c,i)
Keyed (i,t)
Series (i,t)
Whole (i,t)

Array

DStor
QStor

About

Concepts

  • An Array is always a Series (i.e. it retains order), but a Series is not necessarily an Array. (It could be more like a stream.)
  • An Array always has a key, but sometimes the key is just a sequential number. A Keyed array is an Array with assigned key-values.
  • (not implemented) A Flags[et] is a collection of boolean values, i.e. predefined items which are either present or absent
    • It probably makes more sense to just implement these as integer constants defined with binary values, rather than a clade... unless you want a user-friendly readout? To be explored.
  • (not implemented) An enum is a fixed set of values, and can represent each of those values individually. A wrapper for this could provide additional services not permitted by PHP's enum implementaton.

Clade structure

subject to revision while I think through the concepts (2025-08-16)

History

  • 2025-08-15 I keep getting muddled about how this is supposed to work, and therefore writing problematic code -- so, finally mapping it out conceptually.