29        private array $experiments,
 
   30        private bool $hasPreviouslyUsedExperiments
 
 
   36    public function hasPreviouslyUsedExperiments() : bool{ return $this->hasPreviouslyUsedExperiments; }
 
   38    public static function read(ByteBufferReader $in) : self{
 
   40        for($i = 0, $len = LE::readUnsignedInt($in); $i < $len; ++$i){
 
   41            $experimentName = CommonTypes::getString($in);
 
   42            $enabled = CommonTypes::getBool($in);
 
   43            $experiments[$experimentName] = $enabled;
 
   45        $hasPreviouslyUsedExperiments = CommonTypes::getBool($in);
 
   46        return new self($experiments, $hasPreviouslyUsedExperiments);
 
   49    public function write(ByteBufferWriter $out) : void{
 
   50        LE::writeUnsignedInt($out, count($this->experiments));
 
   51        foreach($this->experiments as $experimentName => $enabled){
 
   52            CommonTypes::putString($out, $experimentName);
 
   53            CommonTypes::putBool($out, $enabled);
 
   55        CommonTypes::putBool($out, $this->hasPreviouslyUsedExperiments);