public function write($output)
{
$xfer = 0;
$xfer += $output->writeStructBegin('KeySlice');
if ($this->key !== null) {
$xfer += $output->writeFieldBegin('key', TType::STRING, 1);
$xfer += $output->writeString($this->key);
$xfer += $output->writeFieldEnd();
}
if ($this->columns !== null) {
if (!is_array($this->columns)) {
throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
}
$xfer += $output->writeFieldBegin('columns', TType::LST, 2);
$output->writeListBegin(TType::STRUCT, count($this->columns));
foreach ($this->columns as $iter20) {
$xfer += $iter20->write($output);
}
$output->writeListEnd();
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}