public function set($path, $value)
    {
        if ($value instanceof ValueReference) {
            $value = $value->get($this);
        }

        if (\is_array($value) || \is_object($value)) {
            $value = StructureHelper::toArray($value, true);
        }

        StructureHelper::setByPath($this->data, $path, $value, $this->separator);

        return $this;
    }