<?php

namespace Kicken\Fibers\FiberEventLoop\Trigger;

use Kicken\Fibers\FiberEventLoop\TriggerMonitor;

class StreamReadable implements Trigger {
    public function __construct(private readonly mixed $stream){
    }

    public function prepare(TriggerMonitor $monitor) : void{
        $monitor->addStreamReadable($this->stream);
    }

    public function isTriggered(TriggerMonitor $monitor) : bool{
        return !is_resource($this->stream) || $monitor->isReadable($this->stream);
    }

    public function getResumeData() : mixed{
        return null;
    }
}