/** * Defines the specified struct as inner of this struct. * * @param struct the inner struct. * @return the specified struct. * @throws IllegalArgumentException if the specified struct is already an inner struct. */ protected /*<S extends Struct> S*/ Struct inner(/*S*/ Struct struct) { if (struct._outer != null) throw new java.lang.IllegalArgumentException("struct: Already an inner struct"); struct._outer = this; final int bitSize = struct.size() << 3; updateIndexes(struct._alignment, bitSize, bitSize); struct._outerOffset = (_bitIndex - bitSize) >> 3; return (/*S*/ Struct) struct; }