In relation to #100, prepared PR with refactor of ReplaceFrom() to enclose all changes in single BeginEdit-EndEdit frame to be able to enclose it with transaction.
Had to do small enhancements to reflect.go to be able to reuse existing TestReplaceFrom() test. Reflect-based Node did not tolerate request flags.
Also, please pay attention to changed payload structure in test, please ensure that such change is not breaking any existing contracts. I found several usecases where payload structure is not compatible with RESTCONF rfc8040 spec. I'll try to fix that in future PRs.
And finally, list cleanup code might be not optimal, but it is baseline for optimizations. Please, give feedback if you see a easy way to improve that.
Hope this PR is good enough for this project. I've put a lot of effort to understand this edit strategy but still intuition is a big part of this PR :)
In relation to #100, prepared PR with refactor of
ReplaceFrom()
to enclose all changes in single BeginEdit-EndEdit frame to be able to enclose it with transaction.Had to do small enhancements to
reflect.go
to be able to reuse existingTestReplaceFrom()
test. Reflect-based Node did not tolerate request flags. Also, please pay attention to changed payload structure in test, please ensure that such change is not breaking any existing contracts. I found several usecases where payload structure is not compatible with RESTCONF rfc8040 spec. I'll try to fix that in future PRs. And finally, list cleanup code might be not optimal, but it is baseline for optimizations. Please, give feedback if you see a easy way to improve that. Hope this PR is good enough for this project. I've put a lot of effort to understand this edit strategy but still intuition is a big part of this PR :)