public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasName) wr_.AsString(fs_[3], _name);
			switch (_ztest_id_) 
			{
				case 0: break;
				case 1: wr_.AsString(fs_[0], _str); break; 
				case 2: wr_.AsBytes(fs_[1], _date); break; 
				case 3: wr_.AsMessage(fs_[2], _msg); break; 
				case 10: wr_.AsInt(fs_[4], _i32); break; 
				case 11: wr_.AsBool(fs_[5], _bol); break; 
				case 12: wr_.AsChar(fs_[6], _cha); break; 
				case 14: wr_.AsSi32(fs_[7], _si3); break; 
				case 15: wr_.AsBit32(fs_[8], (int)_fx3); break; 
				case 16: wr_.AsLong(fs_[9], (long)_ui64); break; 
				case 17: wr_.AsSi64(fs_[10], _si64); break; 
				case 18: wr_.AsLong(fs_[11], _i64); break; 
				case 19: wr_.AsDouble(fs_[12], _dbl); break; 
				case 20: wr_.AsFloat(fs_[13], _flt); break; 
				case 21: wr_.AsDate(fs_[14], _dat); break; 
			}
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasTypeUrl) wr_.AsString(fs_[0], _type_url);
			if(HasValue) wr_.AsBytes(fs_[1], _value);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasStatus) wr_.AsInt(fs_[0], _status);
			if(HasData) wr_.AsBytes(fs_[1], _data);
			if(HasExpires) wr_.AsInt(fs_[2], (int)_expires);
			if(HasFlags) wr_.AsInt(fs_[3], (int)_flags);
			if(HasCas) wr_.AsLong(fs_[4], (long)_cas);
			if(HasCounter) wr_.AsLong(fs_[5], (long)_counter);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasOpcode) wr_.AsInt(fs_[0], _opcode);
			if(HasData) wr_.AsBytes(fs_[1], _data);
			if(HasKey) wr_.AsBytes(fs_[2], _key);
			if(HasExpires) wr_.AsInt(fs_[3], (int)_expires);
			if(HasFlags) wr_.AsLong(fs_[4], (long)_flags);
			if(HasCas) wr_.AsLong(fs_[5], (long)_cas);
			if(HasDelta) wr_.AsLong(fs_[6], (long)_delta);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasI32) wr_.AsInt(fs_[0], _i32);
			if(HasI64) wr_.AsLong(fs_[1], _i64);
			if(HasStr) wr_.AsString(fs_[2], Str);
			if(HasBts) wr_.AsBytes(fs_[3], Bts);
			if(HasBln) wr_.AsBool(fs_[4], _bln);
			if(HasFlt) wr_.AsFloat(fs_[5], _flt);
			if(HasCur) wr_.AsCurrency(fs_[6], _cur);
			if(HasDbl) wr_.AsDouble(fs_[7], _dbl);
			if(HasDat) wr_.AsDate(fs_[8], _dat);
			if(HasSi32) wr_.AsSi32(fs_[9], _si32);
			if(HasSi64) wr_.AsSi64(fs_[10], _si64);
			if(HasUi32) wr_.AsInt(fs_[11], (int)_ui32);
			if(HasUi64) wr_.AsLong(fs_[12], (long)_ui64);
			if(HasDec) wr_.AsDecimal(fs_[13], _dec);
			if(HasChr) wr_.AsChar(fs_[14], _chr);
			if(HasEnu) wr_.AsEnum(fs_[15], (int)_enu);
			if(HasF32) wr_.AsBit32(fs_[16], (int)_f32);
			if(HasF64) wr_.AsBit64(fs_[17], (long)_f64);
		}
		public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasValue) wr_.AsBytes(fs_[0], _value);
		}