<?php namespace nur\sery\wip\schema; use nur\sery\wip\schema\_assoc\AssocResult; use nur\sery\wip\schema\_list\ListResult; use nur\sery\wip\schema\_scalar\ScalarResult; /** * Class Result: résultat de l'analyse ou de la normalisation d'une valeur */ abstract class Result { function __construct() { $this->reset(); } function isAssoc(?AssocResult &$assoc=null): bool { return false; } function isList(?ListResult &$list=null): bool { return false; } function isScalar(?ScalarResult &$scalar=null): bool { return false; } /** * Obtenir la liste des clés valides pour les valeurs accessibles via cet * objet */ abstract function getKeys(): array; /** obtenir un objet pour gérer la valeur spécifiée */ abstract function getResult($key=null): Result; abstract function reset(): void; }