Define dictionary in protocol buffer
===

I'm new to both protocol buffers and C++, so this may be a basic question, but I haven't had any luck finding answers.  Basically, I want the functionality of a dictionary defined in my `.proto` file like an `enum`.  I'm using the protocol buffer to send data, and I want to define units and their respective names.  An `enum` would allow me to define the units, but I don't know how to map the human-readable strings to that.

As an example of what I mean, the `.proto` file might look something like:

    message DataPack {
        // obviously not valid, but something like this
        dict UnitType {
            KmPerHour = "km/h";
            MiPerHour = "mph";
        }
        
        required int id = 1;
        repeated DataPoint pt = 2;
        
        message DataPoint {
            required int id = 1;
            required int value = 2;
            optional UnitType theunit = 3;
        }
    }

and then have something like to create / handle messages:

    // construct
    DataPack pack;
    pack->set_id(123);
    DataPack::DataPoint pt = pack.add_point();
    pt->set_id(456);
    pt->set_value(789);
    pt->set_unit(DataPack::UnitType::KmPerHour);
    
    // read values
    DataPack::UnitType theunit = pt.unit();
    cout << theunit.name << endl; // print "km/h"

I could just define an `enum` with the unit names and write a function to map them to strings on the receiving end, but it would make more sense to have them defined in the same spot, and that solution seems too complicated (at least, for someone who has lately been spoiled by the conveniences of Python).  Is there an easier way to accomplish this?