syntax = "proto3";

package java.lang;

// IDs: 1 - 9

/**
 * @TypeId(1)
 */
message Class {
	oneof field {
		Class	any	= 1;
		uint32	id	= 2;
		string	name	= 3;
		uint32	field	= 4;
	}
	optional	string	className	= 5;
	optional	string	module	= 6;
}

/**
 * @TypeId(3)
 */
message StackTraceElement {
	string	className	= 1;
	string	methodName	= 2;
	string	fileName	= 3;
	uint32	lineNumber	= 4;
	string	classLoaderName	= 5;
	string	moduleName	= 6;
	string	moduleVersion	= 7;
}

/**
 * @TypeId(4)
 */
message Throwable {
	Class	exceptionClass	= 1;
	string	message	= 2;
	Throwable	cause	= 3;
	repeated	StackTraceElement	stackTraceElement	= 4;
	repeated	Throwable	suppressed	= 5;
}
