<?php
namespace Psr\Link;
/**
* An evolvable link provider value object.
*/
interface EvolvableLinkProviderInterface extends LinkProviderInterface
{
/**
* Returns an instance with the specified link included.
*
* If the specified link is already present, this method MUST return normally
* without errors. The link is present if $link is === identical to a link
* object already in the collection.
*
* @param LinkInterface $link
* A link object that should be included in this collection.
* @return static
*/
public function withLink(LinkInterface $link);
/**
* Returns an instance with the specifed link removed.
*
* If the specified link is not present, this method MUST return normally
* without errors. The link is present if $link is === identical to a link
* object already in the collection.
*
* @param LinkInterface $link
* The link to remove.
* @return static
*/
public function withoutLink(LinkInterface $link);
}