@SuppressWarnings("unchecked")
    public T openBlock(String textBeforeNewline, String textAfterNewline, Object[] args, Runnable f) {
        write(textBeforeNewline, args).indent();
        f.run();
        closeBlock(textAfterNewline);
        return (T) this;
    }
Opens a block of syntax by writing {@code textBeforeNewline}, a newline, then
indenting, then executes the given {@code Runnable}, then closes the block of
syntax by writing a newline, dedenting, then writing {@code textAfterNewline}.

@param textBeforeNewline Text to write before writing a newline and indenting.
@param textAfterNewline Text to write after writing a newline and indenting.
@param args Arguments to substitute into {@code textBeforeNewline}.
@param f Runnable function to execute inside of the block.
@return Returns this.
smithy-utils/src/main/java/software/amazon/smithy/utils/AbstractCodeWriter.java