code: func (m *Value) ToNative() (qv quad.Value) {
  	if m == nil {
  		return nil
  	}
  	switch v := m.Value.(type) {
  	case *Value_Raw:
  		return quad.StringToValue(string(v.Raw))
  	case *Value_Str:
  		return quad.String(v.Str)
  	case *Value_Iri:
  		return quad.IRI(v.Iri)
  	case *Value_Bnode:
  		return quad.BNode(v.Bnode)
  	case *Value_TypedStr:
  		return quad.TypedString{
  			Value: quad.String(v.TypedStr.Value),
  			Type:  quad.IRI(v.TypedStr.Type),
  		}
  	case *Value_LangStr:
  		return quad.LangString{
  			Value: quad.String(v.LangStr.Value),
  			Lang:  v.LangStr.Lang,
  		}
  	case *Value_Int:
  		return quad.Int(v.Int)
  	case *Value_Float:
  		return quad.Float(v.Float)
  	case *Value_Boolean:
  		return quad.Bool(v.Boolean)
  	case *Value_Time:
  		var t time.Time
  		if v.Time == nil {
  			t = time.Unix(0, 0).UTC()
  		} else {
  			t = time.Unix(v.Time.Seconds, int64(v.Time.Nanos)).UTC()
  		}
  		return quad.Time(t)
  	default:
  		panic(fmt.Errorf("unsupported type: %T", m.Value))
  	}
  }
docs: // ToNative converts protobuf Value to quad.Value.