2024-08-16 06:52:24 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package objdiff.report;
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// Progress info for a report or unit
|
|
|
|
message Measures {
|
|
|
|
// Overall match percent, including partially matched functions and data
|
2024-08-16 06:52:24 +00:00
|
|
|
float fuzzy_match_percent = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Total size of code in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 total_code = 2;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched code size in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 matched_code = 3;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched code percent
|
2024-08-16 06:52:24 +00:00
|
|
|
float matched_code_percent = 4;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Total size of data in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 total_data = 5;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched data size in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 matched_data = 6;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched data percent
|
2024-08-16 06:52:24 +00:00
|
|
|
float matched_data_percent = 7;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Total number of functions
|
2024-08-16 06:52:24 +00:00
|
|
|
uint32 total_functions = 8;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched functions
|
2024-08-16 06:52:24 +00:00
|
|
|
uint32 matched_functions = 9;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Fully matched functions percent
|
2024-08-16 06:52:24 +00:00
|
|
|
float matched_functions_percent = 10;
|
2024-09-03 06:59:06 +00:00
|
|
|
// Completed (or "linked") code size in bytes
|
|
|
|
uint64 complete_code = 11;
|
|
|
|
// Completed (or "linked") code percent
|
|
|
|
float complete_code_percent = 12;
|
|
|
|
// Completed (or "linked") data size in bytes
|
|
|
|
uint64 complete_data = 13;
|
|
|
|
// Completed (or "linked") data percent
|
|
|
|
float complete_data_percent = 14;
|
2024-08-16 06:52:24 +00:00
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// Project progress report
|
|
|
|
message Report {
|
|
|
|
// Overall progress info
|
|
|
|
Measures measures = 1;
|
|
|
|
// Units within this report
|
|
|
|
repeated ReportUnit units = 2;
|
2024-09-03 06:59:06 +00:00
|
|
|
// Report version
|
|
|
|
uint32 version = 3;
|
|
|
|
// Progress categories
|
|
|
|
repeated ReportCategory categories = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ReportCategory {
|
|
|
|
// The ID of the category
|
|
|
|
string id = 1;
|
|
|
|
// The name of the category
|
|
|
|
string name = 2;
|
|
|
|
// Progress info for this category
|
|
|
|
Measures measures = 3;
|
2024-08-18 19:42:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// A unit of the report (usually a translation unit)
|
2024-08-16 06:52:24 +00:00
|
|
|
message ReportUnit {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The name of the unit
|
2024-08-16 06:52:24 +00:00
|
|
|
string name = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Progress info for this unit
|
|
|
|
Measures measures = 2;
|
|
|
|
// Sections within this unit
|
|
|
|
repeated ReportItem sections = 3;
|
|
|
|
// Functions within this unit
|
|
|
|
repeated ReportItem functions = 4;
|
|
|
|
// Extra metadata for this unit
|
|
|
|
optional ReportUnitMetadata metadata = 5;
|
2024-08-16 06:52:24 +00:00
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// Extra metadata for a unit
|
|
|
|
message ReportUnitMetadata {
|
|
|
|
// Whether this unit is marked as complete (or "linked")
|
|
|
|
optional bool complete = 1;
|
|
|
|
// The name of the module this unit belongs to
|
|
|
|
optional string module_name = 2;
|
|
|
|
// The ID of the module this unit belongs to
|
|
|
|
optional uint32 module_id = 3;
|
|
|
|
// The path to the source file of this unit
|
|
|
|
optional string source_path = 4;
|
2024-09-03 06:59:06 +00:00
|
|
|
// Progress categories for this unit
|
|
|
|
repeated string progress_categories = 5;
|
|
|
|
// Whether this unit is automatically generated (not user-provided)
|
|
|
|
optional bool auto_generated = 6;
|
2024-08-18 19:42:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// A section or function within a unit
|
2024-08-16 06:52:24 +00:00
|
|
|
message ReportItem {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The name of the item
|
2024-08-16 06:52:24 +00:00
|
|
|
string name = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The size of the item in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 size = 2;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The overall match percent for this item
|
2024-08-16 06:52:24 +00:00
|
|
|
float fuzzy_match_percent = 3;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Extra metadata for this item
|
|
|
|
optional ReportItemMetadata metadata = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Extra metadata for an item
|
|
|
|
message ReportItemMetadata {
|
|
|
|
// The demangled name of the function
|
|
|
|
optional string demangled_name = 1;
|
|
|
|
// The virtual address of the function or section
|
|
|
|
optional uint64 virtual_address = 2;
|
2024-08-16 06:52:24 +00:00
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// A pair of reports to compare and generate changes
|
2024-08-16 06:52:24 +00:00
|
|
|
message ChangesInput {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The previous report
|
2024-08-16 06:52:24 +00:00
|
|
|
Report from = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The current report
|
2024-08-16 06:52:24 +00:00
|
|
|
Report to = 2;
|
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// Changes between two reports
|
2024-08-16 06:52:24 +00:00
|
|
|
message Changes {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The progress info for the previous report
|
|
|
|
Measures from = 1;
|
|
|
|
// The progress info for the current report
|
|
|
|
Measures to = 2;
|
|
|
|
// Units that changed
|
2024-08-16 06:52:24 +00:00
|
|
|
repeated ChangeUnit units = 3;
|
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// A changed unit
|
2024-08-16 06:52:24 +00:00
|
|
|
message ChangeUnit {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The name of the unit
|
2024-08-16 06:52:24 +00:00
|
|
|
string name = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The previous progress info (omitted if new)
|
|
|
|
optional Measures from = 2;
|
|
|
|
// The current progress info (omitted if removed)
|
|
|
|
optional Measures to = 3;
|
|
|
|
// Sections that changed
|
2024-08-16 06:52:24 +00:00
|
|
|
repeated ChangeItem sections = 4;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Functions that changed
|
2024-08-16 06:52:24 +00:00
|
|
|
repeated ChangeItem functions = 5;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Extra metadata for this unit
|
|
|
|
optional ReportUnitMetadata metadata = 6;
|
2024-08-16 06:52:24 +00:00
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// A changed section or function
|
2024-08-16 06:52:24 +00:00
|
|
|
message ChangeItem {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The name of the item
|
2024-08-16 06:52:24 +00:00
|
|
|
string name = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The previous progress info (omitted if new)
|
2024-08-16 06:52:24 +00:00
|
|
|
optional ChangeItemInfo from = 2;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The current progress info (omitted if removed)
|
2024-08-16 06:52:24 +00:00
|
|
|
optional ChangeItemInfo to = 3;
|
2024-08-18 19:42:41 +00:00
|
|
|
// Extra metadata for this item
|
|
|
|
optional ReportItemMetadata metadata = 4;
|
2024-08-16 06:52:24 +00:00
|
|
|
}
|
|
|
|
|
2024-08-18 19:42:41 +00:00
|
|
|
// Progress info for a section or function
|
2024-08-16 06:52:24 +00:00
|
|
|
message ChangeItemInfo {
|
2024-08-18 19:42:41 +00:00
|
|
|
// The overall match percent for this item
|
2024-08-16 06:52:24 +00:00
|
|
|
float fuzzy_match_percent = 1;
|
2024-08-18 19:42:41 +00:00
|
|
|
// The size of the item in bytes
|
2024-08-16 06:52:24 +00:00
|
|
|
uint64 size = 2;
|
2024-08-18 19:42:41 +00:00
|
|
|
}
|