8#ifndef RPNX_CORTADO_DESCRIPTORS_HPP
9#define RPNX_CORTADO_DESCRIPTORS_HPP
13#include <rpnx/macros.hpp>
14#include <rpnx/variant.hpp>
22 enum class primitive_descriptor_kind : std::uint8_t {
byte =
'B', character =
'C', double_precision =
'D', floating_point =
'F', integer =
'I', long_integer =
'J', short_integer =
'S',
boolean =
'Z' };
41 using field_type_descriptor = rpnx::variant< primitive_type_descriptor, object_type_descriptor, array_type_descriptor >;
JVM class-file, bytecode, validation, generation, and JAR APIs.
primitive_descriptor_kind
Primitive field-descriptor kinds.
method_descriptor parse_method_descriptor(std::string_view text)
Parses exactly one method descriptor and enforces the 255-slot parameter limit.
std::string serialize_field_descriptor(field_type_descriptor const &descriptor)
Encodes one field descriptor.
field_type_descriptor parse_field_descriptor(std::string_view text)
Parses exactly one field descriptor.
std::size_t descriptor_slot_count(field_type_descriptor const &descriptor) noexcept
Returns the number of JVM local/operand slots occupied by a field descriptor.
rpnx::variant< void_type_descriptor, field_type_descriptor > return_type_descriptor
A JVM method return descriptor.
std::string serialize_method_descriptor(method_descriptor const &descriptor)
Encodes one method descriptor.
rpnx::variant< primitive_type_descriptor, object_type_descriptor, array_type_descriptor > field_type_descriptor
Any JVM field descriptor.
An array JVM field descriptor.
field_type_descriptor component
Immediate component type; nested arrays represent additional dimensions.
A parsed JVM method descriptor.
return_type_descriptor return_type
Field type or the explicit void alternative.
std::vector< field_type_descriptor > parameters
Parameters in invocation order.
An object JVM field descriptor.
std::string internal_name
Slash-separated, nonempty JVM internal class name without L or ;.
A primitive JVM field descriptor.
primitive_descriptor_kind kind
Primitive represented by this descriptor.
The void return descriptor.