#  Copyright (c) PARRRATE T&V 2021. All rights reserved.

from bu4.evaluation.av.aftervalue import AfterValue
from bu4.evaluation.constructs.evaluable import Evaluable
from bu4.evaluation.constructs.evalue import EValue
from bu4.evaluation.targets.avtarget import AVTarget

__all__ = ('AVAnonymousContainer',)


class AVAnonymousContainer(AVTarget):
    def __init__(self, evaluable: Evaluable):
        self.after_value = AfterValue(evaluable, self)

    def given(self, value: EValue) -> Evaluable:
        self.after_value.evaluable = value
        self.after_value.target = self
        return value

    def __str__(self):
        return f'[]'