docs: public static BooleanList calculateStructOffsets(
              Field field,
              int[] fieldDefinitionLevels,
              int[] fieldRepetitionLevels)
      {
          int maxDefinitionLevel = field.getDefinitionLevel();
          int maxRepetitionLevel = field.getRepetitionLevel();
          BooleanList structIsNull = new BooleanArrayList();
          boolean required = field.isRequired();
          if (fieldDefinitionLevels == null) {
              return structIsNull;
          }
          for (int i = 0; i < fieldDefinitionLevels.length; i++) {
              if (fieldRepetitionLevels[i] <= maxRepetitionLevel) {
                  if (isValueNull(required, fieldDefinitionLevels[i], maxDefinitionLevel)) {
                      // Struct is null
                      structIsNull.add(true);
                  }
                  else if (fieldDefinitionLevels[i] >= maxDefinitionLevel) {
                      // Struct is defined and not empty
                      structIsNull.add(false);
                  }
              }
          }
          return structIsNull;
      }