public override void Put(IDataWriter wr_)
		{
			var fs_ = Descriptor.Fields;
			if(HasId) wr_.AsInt(fs_[0], _id);
			if(HasName) wr_.AsString(fs_[1], _name);
			if(HasAlign) wr_.AsEnum(fs_[2], (int)_align);
			if(_weights.Count > 0) wr_.AsRepeated(fs_[3], _weights.Items);
		}
		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);
		}