code: public final int appendStruct(boolean isNull) {
      if (isNull) {
        appendNull();
        for (WritableColumnVector c: childColumns) {
          if (c.type instanceof StructType) {
            c.appendStruct(true);
          } else {
            c.appendNull();
          }
        }
      } else {
        appendNotNull();
      }
      return elementsAppended;
    }
docs: Appends a NULL struct. This *has* to be used for structs instead of appendNull() as this
  recursively appends a NULL to its children.
  We don't have this logic as the general appendNull implementation to optimize the more
  common non-struct case.