//===- Symbol.proto -------------------------------------------*- Proto -*-===//
//
//  Copyright (C) 2018 GrammaTech, Inc.
//
//  This code is licensed under the MIT license. See the LICENSE file in the
//  project root for license terms.
//
//  This project is sponsored by the Office of Naval Research, One Liberty
//  Center, 875 N. Randolph Street, Arlington, VA 22203 under contract #
//  N68335-17-C-0700.  The content of the information does not necessarily
//  reflect the position or policy of the Government and no official
//  endorsement should be inferred.
//
//===----------------------------------------------------------------------===//
syntax = "proto3";
package protoV0;

enum StorageKind {
  Storage_Undefined = 0;
  Storage_Normal = 1;
  Storage_Static = 2;
  Storage_Extern = 3;
  Storage_Local = 4;
};

message Symbol {
  bytes uuid = 1;
  oneof optional_payload {
    uint64 value = 2;
    bytes referent_uuid = 5;
  }
  string name = 3;
  StorageKind storage_kind = 4;
}
