It's nice that there's an interface for each level of result (top level, layers, checks), but the interface doesn't say anything about how the results can be rendered.
The default implementation of the top two levels (NimatorResult and LayerResult) now both do some string magic to render the end result (i.e. when NimatorResult.RenderPlainText() is called), but internally they use ToString() on the levels below them. Effecitively:
ILayerResult implementors need to override ToString()
ICheckResult implementors need to override ToString()
or they will not be rendered in the RennderPlainText() output properly.
Being rendered seems to be a main task of both levels of results, so the interfaces for them should probably be explicit too. Perhaps both of them need to have their own RenderPlainText() definitions, so that it is clear that implementations need that to render the result properly?
It's nice that there's an interface for each level of result (top level, layers, checks), but the interface doesn't say anything about how the results can be rendered.
The default implementation of the top two levels (
NimatorResult
andLayerResult
) now both do some string magic to render the end result (i.e. whenNimatorResult.RenderPlainText()
is called), but internally they useToString()
on the levels below them. Effecitively:ILayerResult
implementors need to overrideToString()
ICheckResult
implementors need to overrideToString()
or they will not be rendered in the
RennderPlainText()
output properly.Being rendered seems to be a main task of both levels of results, so the interfaces for them should probably be explicit too. Perhaps both of them need to have their own
RenderPlainText()
definitions, so that it is clear that implementations need that to render the result properly?