def METHOD_NAME(self, f):
    if not issubclass(f[1], _ScalarCData):
        raise RuntimeError("non-scalar fields not supported")
    if len(f) != 2:
        raise RuntimeError("structs with bitfields not supported")
    self.offset = self.align(self.offset, alignment(f[1]))
    self.fields.append(jffi.StructLayout.ScalarField(f[0], f[1], self.offset))
    if not self.union:
        self.offset += sizeof(f[1])
    self.size = max(self.offset, sizeof(f[1]))
    return self