default TriConsumer<T, U, V> andThen(TriConsumer<? super T, ? super U, ? super V> after) {
        Objects.requireNonNull(after);

        return (x, y, z) -> {
            accept(x, y, z);
            after.accept(x, y, z);
        };
    }
Returns a composed {@link TriConsumer} that performs, in sequence, this
operation followed by the {@code after} operation.

@param after the operation to perform after this operation
@return a composed {@link TriConsumer}
@throws NullPointerException if {@code after} is null
smithy-utils/src/main/java/software/amazon/smithy/utils/TriConsumer.java