<?php

declare(strict_types=1);

namespace App\Framework\OutputBuffer;

/**
 * Output buffer handler flags
 *
 * Type-safe wrapper for PHP's output handler constants
 */
enum OutputBufferFlag: int
{
    /**
     * Buffer can be cleaned with ob_clean(), ob_end_clean() and ob_get_clean()
     */
    case CLEANABLE = PHP_OUTPUT_HANDLER_CLEANABLE;

    /**
     * Buffer can be flushed with ob_flush(), ob_end_flush() and ob_get_flush()
     */
    case FLUSHABLE = PHP_OUTPUT_HANDLER_FLUSHABLE;

    /**
     * Buffer can be removed with ob_end_clean(), ob_end_flush() and ob_get_flush()
     */
    case REMOVABLE = PHP_OUTPUT_HANDLER_REMOVABLE;

    /**
     * Standard set of flags (CLEANABLE | FLUSHABLE | REMOVABLE)
     */
    case STDFLAGS = PHP_OUTPUT_HANDLER_STDFLAGS;
}
