In digest we replaced generic buffering wrapper types with buffering macros. It results in a more convoluted and less transparent code from the developer point of view, but, on the other hand, it results in a simpler API for users, since they see only opaque buffered type with an explicit list of implemented traits.