| 
<?php
 /*
 * This file is part of Chevere.
 *
 * (c) Rodolfo Berrios <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 declare(strict_types=1);
 
 namespace Chevere\VarDump\Interfaces;
 
 /**
 * Describes the component in charge of processing a variable of a known type.
 */
 interface ProcessorInterface
 {
 /**
 * Provides the variable type (primitive).
 */
 public function type(): string;
 
 /**
 * Provides info about the variable like `size=1`, `length=6`, 'Object #id'.
 */
 public function info(): string;
 
 /**
 * Provides a highlighted type.
 */
 public function typeHighlighted(): string;
 
 /**
 * Highlights the given operator `$string`.
 */
 public function highlightOperator(string $string): string;
 
 /**
 * Highlights and wraps in parentheses the given `$string`.
 */
 public function highlightParentheses(string $string): string;
 
 /**
 * Write the dump to the stream.
 */
 public function write(): void;
 }
 
 |