diff --git a/composer.json b/composer.json index e8ca03b..1798053 100644 --- a/composer.json +++ b/composer.json @@ -23,9 +23,10 @@ "ext-filter": "*", "nette/php-generator": "4.2.1", "thesis/package-version": "0.1.2", - "thesis/protobuf": "^0.1.6", + "thesis/protobuf": "^0.1.7", "thesis/protobuf-compiler-types": "0.1.0", - "thesis/protobuf-descriptor-types": "0.1.0" + "thesis/protobuf-descriptor-types": "0.1.0", + "thesis/protoregistry": "^0.1.1" }, "require-dev": { "phpunit/phpunit": "^12.4", diff --git a/src/Plugin/ClassLikeGenerator.php b/src/Plugin/ClassLikeGenerator.php index 6df6cef..c910cef 100644 --- a/src/Plugin/ClassLikeGenerator.php +++ b/src/Plugin/ClassLikeGenerator.php @@ -32,7 +32,6 @@ public function __construct( $this->grpc = new Generator\GrpcGenerator( $namespacer, $graph, - $index, $package, ); $this->proto = new Generator\ProtoGenerator( diff --git a/src/Plugin/Compiler.php b/src/Plugin/Compiler.php index 4eed00c..e8bcf2f 100644 --- a/src/Plugin/Compiler.php +++ b/src/Plugin/Compiler.php @@ -8,10 +8,13 @@ use Google\Protobuf\Compiler\CodeGeneratorResponse; use Thesis\Package; use Thesis\Protobuf\Encoder; +use Thesis\Protobuf\Registry\File; use Thesis\Protoc\Exception\CodeCannotBeGenerated; +use Thesis\Protoc\Plugin\Generator\AutoloadFunctionGenerator; use Thesis\Protoc\Plugin\Generator\FileFactory; use Thesis\Protoc\Plugin\Parser\FileDescriptor; use Thesis\Protoc\Plugin\Parser\MessageDescriptor; +use Thesis\Protoc\Plugin\Parser\ServiceMethodDescriptor; use Thesis\Protoc\ProtocException; /** @@ -84,6 +87,24 @@ private function doGenerate( if ($options->requireGrpcServer) { yield from $generator->generateGrpcServer($service); } + + \assert(($serviceName = ($proto->package !== null ? "{$proto->package}." : '') . $service->path) !== ''); + + $index->addService(new File\ServiceDescriptor( + name: $serviceName, + methods: array_map( + static function (ServiceMethodDescriptor $method): File\MethodDescriptor { + \assert($method->name !== ''); + + return new File\MethodDescriptor( + $method->name, + $method->clientStreaming, + $method->serverStreaming, + ); + }, + $service->methods, + ), + )); } yield from array_map($generator->generateEnum(...), $proto->enums); diff --git a/src/Plugin/AutoloadFunctionGenerator.php b/src/Plugin/Generator/AutoloadFunctionGenerator.php similarity index 78% rename from src/Plugin/AutoloadFunctionGenerator.php rename to src/Plugin/Generator/AutoloadFunctionGenerator.php index d0c7880..634d442 100644 --- a/src/Plugin/AutoloadFunctionGenerator.php +++ b/src/Plugin/Generator/AutoloadFunctionGenerator.php @@ -2,10 +2,9 @@ declare(strict_types=1); -namespace Thesis\Protoc\Plugin; +namespace Thesis\Protoc\Plugin\Generator; use Google\Protobuf\Compiler\CodeGeneratorResponse; -use Thesis\Protoc\Plugin\Generator\FileFactory; /** * @api @@ -24,13 +23,13 @@ public function generateAutoloadFile(array $descriptors): CodeGeneratorResponse\ return $this->files->create( code: \sprintf( <<<'PHP' -\Thesis\Protobuf\Pool\Registry::get()->register( +\Thesis\Protobuf\Registry\Pool::get()->register( %s, ); PHP, implode(",\n", array_map( - static fn(string $descriptor) => " new \\Thesis\\Protobuf\\Pool\\OnceRegistrar(new \\{$descriptor}())", + static fn(string $descriptor) => " new \\Thesis\\Protobuf\\Registry\\OnceRegistrar(new \\{$descriptor}())", $descriptors, )), ), diff --git a/src/Plugin/Generator/DescriptorMetadataRegistryGenerator.php b/src/Plugin/Generator/DescriptorMetadataRegistryGenerator.php index a0da1d7..71033e6 100644 --- a/src/Plugin/Generator/DescriptorMetadataRegistryGenerator.php +++ b/src/Plugin/Generator/DescriptorMetadataRegistryGenerator.php @@ -10,6 +10,7 @@ use Nette\PhpGenerator\Method; use Nette\PhpGenerator\Parameter; use Nette\PhpGenerator\PhpNamespace; +use Thesis\Protobuf\Registry\File; use Thesis\Protoc\Plugin\NameIndex; /** @@ -38,7 +39,7 @@ public function generate( ->setReadOnly() ->addComment('@api') ->setImplements([ - 'Pool\Registrar', + 'Registry\Registrar', ]) ->addMember( new Constant('DESCRIPTOR_BUFFER') @@ -49,20 +50,20 @@ public function generate( $namespace->add($classType); - $namespace->addUse('Thesis\Protobuf\Pool'); - $namespace->addUse('Thesis\Protobuf\Pool\File'); + $namespace->addUse('Thesis\Protobuf\Registry'); + $namespace->addUse('Thesis\Protobuf\Registry\File'); $namespace->addUse(\Override::class); $method = $classType ->addMethod('register') ->setPublic() ->setParameters([ - new Parameter('pool')->setType('Pool\Registry'), + new Parameter('pool')->setType('Registry\Pool'), ]) ->setReturnType('void') ->addAttribute(\Override::class); - $method->addBody('$pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File('); + $method->addBody('$pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File('); $method->addBody(' name: ?,', [$filename]); self::pushParameter($method, 'dependencies', $dependencies); @@ -70,32 +71,41 @@ public function generate( $method, 'messages', $index->messageTypes, - static fn(string $type, string $fqcn) => new Literal( - \sprintf("new File\\MessageDescriptor('%s', \\%s::class)", $type, $fqcn), + static fn(File\MessageDescriptor $descriptor) => new Literal( + \sprintf("new File\\MessageDescriptor('%s', \\%s::class)", $descriptor->name, $descriptor->fqcn), ), ); - self::pushParameter($method, 'enums', $index->enumTypes, static fn(string $type, string $fqcn) => new Literal( - \sprintf("new File\\EnumDescriptor('%s', \\%s::class)", $type, $fqcn), + self::pushParameter($method, 'enums', $index->enumTypes, static fn(File\EnumDescriptor $descriptor) => new Literal( + \sprintf("new File\\EnumDescriptor('%s', \\%s::class)", $descriptor->name, $descriptor->fqcn), )); self::pushParameter( $method, 'services', - $index->grpc, - static fn(string $type, object $service) => new Literal( - vsprintf( - <<<'PHP' - new File\ServiceDescriptor( - name: '%s', - clientFqcn: %s, - serverFqcn: %s, + $index->services, + static fn(File\ServiceDescriptor $descriptor) => new Literal( + <<<'PHP' +new File\ServiceDescriptor( + name: ?, + methods: [ + ? + ], ) PHP, - [ - $type, - isset($service->client) ? "\\{$service->client}::class" : 'null', - isset($service->server) ? "\\{$service->server}::class" : 'null', - ], - ), + [ + $descriptor->name, + new Literal(implode( + "\n ", + array_map( + static fn(File\MethodDescriptor $method) => \sprintf( + "new File\\MethodDescriptor('%s', %s, %s),", + $method->name, + $method->clientStream ? 'true' : 'false', + $method->serverStream ? 'true' : 'false', + ), + $descriptor->methods, + ), + )), + ], ), ); @@ -105,12 +115,11 @@ public function generate( } /** - * @template K of array-key * @template V * @template R * @param non-empty-string $name - * @param array $items - * @param ?\Closure(K, V): R $format + * @param list $items + * @param ?\Closure(V): R $format */ private static function pushParameter( Method $method, @@ -118,13 +127,13 @@ private static function pushParameter( array $items, ?\Closure $format = null, ): void { - $format ??= static fn(mixed $key, mixed $value) => $value; + $format ??= static fn(mixed $value) => $value; if ($items !== []) { $method->addBody(" {$name}: ["); - foreach ($items as $key => $value) { - $method->addBody(' ?,', [$format($key, $value)]); + foreach ($items as $value) { + $method->addBody(' ?,', [$format($value)]); } $method->addBody(' ],'); diff --git a/src/Plugin/Generator/GrpcGenerator.php b/src/Plugin/Generator/GrpcGenerator.php index da09483..ec2e5db 100644 --- a/src/Plugin/Generator/GrpcGenerator.php +++ b/src/Plugin/Generator/GrpcGenerator.php @@ -11,7 +11,6 @@ use Nette\PhpGenerator\PhpNamespace; use Nette\PhpGenerator\PromotedParameter; use Thesis\Protoc\Plugin\Dependency; -use Thesis\Protoc\Plugin\NameIndex; use Thesis\Protoc\Plugin\Naming; use Thesis\Protoc\Plugin\Parser; @@ -23,7 +22,6 @@ public function __construct( private PhpNamespacer $namespacer, private Dependency\Graph $graph, - private NameIndex $index, private ?string $package = null, ) {} @@ -33,8 +31,6 @@ public function generateClient(Parser\ServiceDescriptor $service): PhpNamespace $name = \sprintf('%sClient', Naming::pascalCase($service->name)); - $this->index->addClient(($this->package !== null ? "{$this->package}." : '') . $service->path, "{$namespace->getName()}\\{$name}"); - $classType = new ClassType($name) ->setFinal() ->setReadOnly() @@ -201,12 +197,10 @@ public function generateServer(Parser\ServiceDescriptor $service): PhpNamespace { $namespace = $this->namespacer->create($service->path); - $interfaceType = new InterfaceType($name = \sprintf('%sServer', Naming::pascalCase($service->name))) + $interfaceType = new InterfaceType(\sprintf('%sServer', Naming::pascalCase($service->name))) ->addComment('@api') ->addComment($service->comment !== null ? "\n{$service->comment}" : ''); - $this->index->addServer(($this->package !== null ? "{$this->package}." : '') . $service->path, "{$namespace->getName()}\\{$name}"); - $namespace->add($interfaceType); if ($service->methods === []) { diff --git a/src/Plugin/Generator/ProtoGenerator.php b/src/Plugin/Generator/ProtoGenerator.php index 1f9bdcc..24f3255 100644 --- a/src/Plugin/Generator/ProtoGenerator.php +++ b/src/Plugin/Generator/ProtoGenerator.php @@ -13,6 +13,7 @@ use Nette\PhpGenerator\InterfaceType; use Nette\PhpGenerator\Literal; use Nette\PhpGenerator\PhpNamespace; +use Thesis\Protobuf\Registry\File; use Thesis\Protoc\Exception\CodeCannotBeGenerated; use Thesis\Protoc\Plugin\Dependency; use Thesis\Protoc\Plugin\NameIndex; @@ -42,7 +43,15 @@ public function generateEnum(Parser\EnumDescriptor $enum): PhpNamespace $enumName = Naming::pascalCase($enum->name); - $this->index->addEnumType($enum->fqcn, "{$namespace->getName()}\\{$enumName}"); + \assert($enum->fqcn !== ''); + + /** @var class-string $enumFqcn */ + $enumFqcn = "{$namespace->getName()}\\{$enumName}"; + + $this->index->addEnumType(new File\EnumDescriptor( + $enum->fqcn, + $enumFqcn, + )); $enumType = new EnumType($enumName) ->addComment('@api') @@ -66,7 +75,21 @@ public function generateEnum(Parser\EnumDescriptor $enum): PhpNamespace */ public function generateMessages(Parser\MessageDescriptor $message): iterable { - yield $message->path => $this->generateMessage($message); + $namespace = $this->namespacer->create($message->path); + + $className = Naming::pascalCase($message->name); + + \assert($message->fqcn !== ''); + + /** @var class-string $messageFqcn */ + $messageFqcn = "{$namespace->getName()}\\{$className}"; + + $this->index->addMessageType(new File\MessageDescriptor( + $message->fqcn, + $messageFqcn, + )); + + yield $message->path => $this->generateMessage($namespace, $className, $message); $oneofByIndex = []; @@ -99,14 +122,8 @@ public function generateMessages(Parser\MessageDescriptor $message): iterable * @param list $implements * @throws CodeCannotBeGenerated */ - private function generateMessage(Parser\MessageDescriptor $message, array $implements = []): PhpNamespace + private function generateMessage(PhpNamespace $namespace, string $className, Parser\MessageDescriptor $message, array $implements = []): PhpNamespace { - $namespace = $this->namespacer->create($message->path); - - $className = Naming::pascalCase($message->name); - - $this->index->addMessageType($message->fqcn, "{$namespace->getName()}\\{$className}"); - $classType = new ClassType($className) ->setFinal() ->setReadOnly() @@ -325,14 +342,19 @@ private function generateOneofVariant( ], ); - yield $path => $this->generateMessage($descriptor, [ - Naming::joinNamespace([ - '', - $this->namespacer->namespace, - $message->path, - $interfaceName, - ]), - ]); + yield $path => $this->generateMessage( + $this->namespacer->create($path), + Naming::pascalCase($className), + $descriptor, + [ + Naming::joinNamespace([ + '', + $this->namespacer->namespace, + $message->path, + $interfaceName, + ]), + ], + ); } private function parseDefaultValue( diff --git a/src/Plugin/NameIndex.php b/src/Plugin/NameIndex.php index 8521dc5..6b16893 100644 --- a/src/Plugin/NameIndex.php +++ b/src/Plugin/NameIndex.php @@ -4,56 +4,40 @@ namespace Thesis\Protoc\Plugin; +use Thesis\Protobuf\Registry\File; + /** * @api - * @phpstan-type GrpcService = object{client: ?string, server: ?string} */ final class NameIndex { - /** @var array */ + /** @var list */ public private(set) array $messageTypes = []; - /** @var array */ + /** @var list */ public private(set) array $enumTypes = []; - /** @var array + /** @var list */ - public private(set) array $grpc = []; - - public function addMessageType(string $type, string $fqcn): void - { - $this->messageTypes[$type] = $fqcn; - } + public private(set) array $services = []; - public function addEnumType(string $type, string $fqcn): void + public function addMessageType(File\MessageDescriptor $message): void { - $this->enumTypes[$type] = $fqcn; + $this->messageTypes[] = $message; } - public function addClient(string $type, string $fqcn): void + public function addEnumType(File\EnumDescriptor $enum): void { - $this->grpc[$type] ??= new class { - public function __construct( - public ?string $client = null, - public ?string $server = null, - ) {} - }; - $this->grpc[$type]->client = $fqcn; // @phpstan-ignore assign.propertyReadOnly + $this->enumTypes[] = $enum; } - public function addServer(string $type, string $fqcn): void + public function addService(File\ServiceDescriptor $service): void { - $this->grpc[$type] ??= new class { - public function __construct( - public ?string $client = null, - public ?string $server = null, - ) {} - }; - $this->grpc[$type]->server = $fqcn; // @phpstan-ignore assign.propertyReadOnly + $this->services[] = $service; } public function empty(): bool { - return $this->messageTypes === [] && $this->enumTypes === [] && $this->grpc === []; + return $this->messageTypes === [] && $this->enumTypes === [] && $this->services === []; } } diff --git a/tests/snapshots/editions/Proto/Api/V1/EditionsDescriptorRegistry.php b/tests/snapshots/editions/Proto/Api/V1/EditionsDescriptorRegistry.php index 7ab4b75..815e1f0 100644 --- a/tests/snapshots/editions/Proto/Api/V1/EditionsDescriptorRegistry.php +++ b/tests/snapshots/editions/Proto/Api/V1/EditionsDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Proto\Api\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class EditionsDescriptorRegistry implements Pool\Registrar +final readonly class EditionsDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cg5lZGl0aW9ucy5wcm90bxIMcHJvdG8uYXBpLnYxIqcCChBFZGl0aW9uc0ZlYXR1cmVzEiEKCGltcGxpY2l0GAEgASgJUghpbXBsaWNpdEIFqgECCAISIQoIZXhwbGljaXQYAiABKAlSCGV4cGxpY2l0QgWqAQIIARIpChBkZWZhdWx0X3ByZXNlbmNlGAMgASgJUg9kZWZhdWx0UHJlc2VuY2USHQoGcGFja2VkGAQgAygFUgZwYWNrZWRCBaoBAhgBEiEKCGV4cGFuZGVkGAUgAygFUghleHBhbmRlZEIFqgECGAISKQoQZGVmYXVsdF9lbmNvZGluZxgGIAMoBVIPZGVmYXVsdEVuY29kaW5nEjUKBHR5cGUYByABKA4yEi5wcm90by5hcGkudjEuVHlwZToNVFlQRV9FRElUSU9OU1IEdHlwZSo+CgRUeXBlEhIKEFRZUEVfVU5TUEVDSUZJRUQSDwoLVFlQRV9QUk9UTzMQARIRCg1UWVBFX0VESVRJT05TEAJKqAYKBhIEAAATAQoICgEMEgMAABEKCAoBAhIDAgAVCgoKAgUAEgQEAAgBCgoKAwUAARIDBAUJCgsKBAUAAgASAwUEGQoMCgUFAAIAARIDBQQUCgwKBQUAAgACEgMFFxgKCwoEBQACARIDBgQUCgwKBQUAAgEBEgMGBA8KDAoFBQACAQISAwYSEwoLCgQFAAICEgMHBBYKDAoFBQACAgESAwcEEQoMCgUFAAICAhIDBxQVCgoKAgQAEgQKABMBCgoKAwQAARIDCggYCgsKBAQAAgASAwsEPQoMCgUEAAIABRIDCwQKCgwKBQQAAgABEgMLCxMKDAoFBAACAAMSAwsWFwoMCgUEAAIACBIDCxg8Cg4KBwQAAgAIFQESAwsZOwoLCgQEAAIBEgMMBD0KDAoFBAACAQUSAwwECgoMCgUEAAIBARIDDAsTCgwKBQQAAgEDEgMMFhcKDAoFBAACAQgSAwwYPAoOCgcEAAIBCBUBEgMMGTsKCwoEBAACAhIDDQQgCgwKBQQAAgIFEgMNBAoKDAoFBAACAgESAw0LGwoMCgUEAAICAxIDDR4fCgsKBAQAAgMSAw4ESgoMCgUEAAIDBBIDDgQMCgwKBQQAAgMFEgMODRIKDAoFBAACAwESAw4TGQoMCgUEAAIDAxIDDhwdCgwKBQQAAgMIEgMOHkkKDgoHBAACAwgVAxIDDh9ICgsKBAQAAgQSAw8ETgoMCgUEAAIEBBIDDwQMCgwKBQQAAgQFEgMPDRIKDAoFBAACBAESAw8TGwoMCgUEAAIEAxIDDx4fCgwKBQQAAgQIEgMPIE0KDgoHBAACBAgVAxIDDyFMCgsKBAQAAgUSAxAEKAoMCgUEAAIFBBIDEAQMCgwKBQQAAgUFEgMQDRIKDAoFBAACBQESAxATIwoMCgUEAAIFAxIDECYnCi0KBAQAAgYSAxIELBogIERlZmF1bHQgdHlwZSBpcyBUWVBFX0VESVRJT05TLgoKDAoFBAACBgYSAxIECAoMCgUEAAIGARIDEgkNCgwKBQQAAgYDEgMSEBEKDAoFBAACBggSAxISKwoMCgUEAAIGBxIDEh0qYghlZGl0aW9uc3DoBw=='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'editions.proto', messages: [ new File\MessageDescriptor('proto.api.v1.EditionsFeatures', \Proto\Api\V1\EditionsFeatures::class), diff --git a/tests/snapshots/editions/Proto/Api/V1/autoload.metadata.php b/tests/snapshots/editions/Proto/Api/V1/autoload.metadata.php index 13e8d6e..50ac061 100644 --- a/tests/snapshots/editions/Proto/Api/V1/autoload.metadata.php +++ b/tests/snapshots/editions/Proto/Api/V1/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Proto\Api\V1\EditionsDescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Proto\Api\V1\EditionsDescriptorRegistry()), ); diff --git a/tests/snapshots/grpc/Thesis/Auth/ProtosAuthDescriptorRegistry.php b/tests/snapshots/grpc/Thesis/Auth/ProtosAuthDescriptorRegistry.php index 13d55e8..007017f 100644 --- a/tests/snapshots/grpc/Thesis/Auth/ProtosAuthDescriptorRegistry.php +++ b/tests/snapshots/grpc/Thesis/Auth/ProtosAuthDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Thesis\Auth; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class ProtosAuthDescriptorRegistry implements Pool\Registrar +final readonly class ProtosAuthDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'ChFwcm90b3MvYXV0aC5wcm90bxILVGhlc2lzLkF1dGgiPgoMTG9naW5SZXF1ZXN0EhIKBHVzZXIYAiABKAlSBHVzZXISGgoIcGFzc3dvcmQYAyABKAlSCHBhc3N3b3JkIiUKDUxvZ2luUmVzcG9uc2USFAoFdG9rZW4YASABKAlSBXRva2VuSvEBCgYSBAAACwEKCAoBDBIDAAASCggKAQISAwIAFAoKCgIEABIEBAAHAQoKCgMEAAESAwQIFAoLCgQEAAIAEgMFBBQKDAoFBAACAAUSAwUECgoMCgUEAAIAARIDBQsPCgwKBQQAAgADEgMFEhMKCwoEBAACARIDBgQYCgwKBQQAAgEFEgMGBAoKDAoFBAACAQESAwYLEwoMCgUEAAIBAxIDBhYXCgoKAgQBEgQJAAsBCgoKAwQBARIDCQgVCgsKBAQBAgASAwoEFQoMCgUEAQIABRIDCgQKCgwKBQQBAgABEgMKCxAKDAoFBAECAAMSAwoTFGIGcHJvdG8z'; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'protos/auth.proto', messages: [ new File\MessageDescriptor('Thesis.Auth.LoginRequest', \Thesis\Auth\LoginRequest::class), diff --git a/tests/snapshots/grpc/Thesis/Auth/V1/AuthV1DescriptorRegistry.php b/tests/snapshots/grpc/Thesis/Auth/V1/AuthV1DescriptorRegistry.php index 8705f65..68b7746 100644 --- a/tests/snapshots/grpc/Thesis/Auth/V1/AuthV1DescriptorRegistry.php +++ b/tests/snapshots/grpc/Thesis/Auth/V1/AuthV1DescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Thesis\Auth\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class AuthV1DescriptorRegistry implements Pool\Registrar +final readonly class AuthV1DescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cg1hdXRoX3YxLnByb3RvEg5UaGVzaXMuQXV0aC5WMRoRcHJvdG9zL2F1dGgucHJvdG8yTQoLQXV0aFNlcnZpY2USPgoFTG9naW4SGS5UaGVzaXMuQXV0aC5Mb2dpblJlcXVlc3QaGi5UaGVzaXMuQXV0aC5Mb2dpblJlc3BvbnNlSnYKBhIEAAAIAQoICgEMEgMAABIKCAoBAhIDAgAXCgkKAgMAEgMEABsKCgoCBgASBAYACAEKCgoDBgABEgMGCBMKCwoEBgACABIDBwQ+CgwKBQYAAgABEgMHCA0KDAoFBgACAAISAwcOHwoMCgUGAAIAAxIDByo8YgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'auth_v1.proto', dependencies: [ 'protos/auth.proto', @@ -34,8 +34,9 @@ public function register(Pool\Registry $pool): void services: [ new File\ServiceDescriptor( name: 'Thesis.Auth.V1.AuthService', - clientFqcn: \Thesis\Auth\V1\AuthServiceClient::class, - serverFqcn: \Thesis\Auth\V1\AuthServiceServer::class, + methods: [ + new File\MethodDescriptor('Login', false, false), + ], ), ], )); diff --git a/tests/snapshots/grpc/Thesis/Queue/ProtosQueueDescriptorRegistry.php b/tests/snapshots/grpc/Thesis/Queue/ProtosQueueDescriptorRegistry.php index 706ff8b..d8098a8 100644 --- a/tests/snapshots/grpc/Thesis/Queue/ProtosQueueDescriptorRegistry.php +++ b/tests/snapshots/grpc/Thesis/Queue/ProtosQueueDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Thesis\Queue; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class ProtosQueueDescriptorRegistry implements Pool\Registrar +final readonly class ProtosQueueDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'ChJwcm90b3MvcXVldWUucHJvdG8SDFRoZXNpcy5RdWV1ZSIyCgtQdXNoUmVxdWVzdBojCgdNZXNzYWdlEhgKB2NvbnRlbnQYASABKAlSB2NvbnRlbnQiVAoLUHVsbFJlcXVlc3QSEAoDcW9zGAEgASgFUgNxb3MaMwoHTWVzc2FnZRIYCgdjb250ZW50GAEgASgJUgdjb250ZW50Eg4KAmlkGAIgASgJUgJpZCI3CglIZWFydGJlYXQaFAoKRnJvbVNlcnZlchoGCgRQaW5nGhQKCkZyb21DbGllbnQaBgoEUGluZ0qGBAoGEgQAABsBCggKAQwSAwAAEgoICgECEgMCABUKCgoCBAASBAQACAEKCgoDBAABEgMECBMKDAoEBAADABIEBQQHBQoMCgUEAAMAARIDBQwTCg0KBgQAAwACABIDBggbCg4KBwQAAwACAAUSAwYIDgoOCgcEAAMAAgABEgMGDxYKDgoHBAADAAIAAxIDBhkaCgoKAgQBEgQKABEBCgoKAwQBARIDCggTCgwKBAQBAwASBAsEDgUKDAoFBAEDAAESAwsMEwoNCgYEAQMAAgASAwwIGwoOCgcEAQMAAgAFEgMMCA4KDgoHBAEDAAIAARIDDA8WCg4KBwQBAwACAAMSAwwZGgoNCgYEAQMAAgESAw0IFgoOCgcEAQMAAgEFEgMNCA4KDgoHBAEDAAIBARIDDQ8RCg4KBwQBAwACAQMSAw0UFQoLCgQEAQIAEgMQBBIKDAoFBAECAAUSAxAECQoMCgUEAQIAARIDEAoNCgwKBQQBAgADEgMQEBEKCgoCBAISBBMAGwEKCgoDBAIBEgMTCBEKDAoEBAIDABIEFAQWBQoMCgUEAgMAARIDFAwWCg0KBgQCAwADABIDFQgXCg4KBwQCAwADAAESAxUQFAoMCgQEAgMBEgQYBBoFCgwKBQQCAwEBEgMYDBYKDQoGBAIDAQMAEgMZCBcKDgoHBAIDAQMAARIDGRAUYgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'protos/queue.proto', messages: [ new File\MessageDescriptor('Thesis.Queue.PushRequest', \Thesis\Queue\PushRequest::class), diff --git a/tests/snapshots/grpc/Thesis/Queue/V1/QueueV1DescriptorRegistry.php b/tests/snapshots/grpc/Thesis/Queue/V1/QueueV1DescriptorRegistry.php index 27b1eaa..8ad569e 100644 --- a/tests/snapshots/grpc/Thesis/Queue/V1/QueueV1DescriptorRegistry.php +++ b/tests/snapshots/grpc/Thesis/Queue/V1/QueueV1DescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Thesis\Queue\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class QueueV1DescriptorRegistry implements Pool\Registrar +final readonly class QueueV1DescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cg5xdWV1ZV92MS5wcm90bxIPVGhlc2lzLlF1ZXVlLlYxGhJwcm90b3MvcXVldWUucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bzL+AQoMUXVldWVTZXJ2aWNlEkMKBFB1c2gSIS5UaGVzaXMuUXVldWUuUHVzaFJlcXVlc3QuTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSgBEkYKBFB1bGwSGS5UaGVzaXMuUXVldWUuUHVsbFJlcXVlc3QaIS5UaGVzaXMuUXVldWUuUHVsbFJlcXVlc3QuTWVzc2FnZTABEmEKCUhlYXJ0YmVhdBInLlRoZXNpcy5RdWV1ZS5IZWFydGJlYXQuRnJvbUNsaWVudC5QaW5nGicuVGhlc2lzLlF1ZXVlLkhlYXJ0YmVhdC5Gcm9tU2VydmVyLlBpbmcoATABSqcCCgYSBAAACwEKCAoBDBIDAAASCggKAQISAwIAGAoJCgIDABIDBAAcCgkKAgMBEgMFACUKCgoCBgASBAcACwEKCgoDBgABEgMHCBQKCwoEBgACABIDCARJCgwKBQYAAgABEgMICAwKDAoFBgACAAUSAwgNEwoMCgUGAAIAAhIDCBQnCgwKBQYAAgADEgMIMkcKCwoEBgACARIDCQQ/CgwKBQYAAgEBEgMJCAwKDAoFBgACAQISAwkNGAoMCgUGAAIBBhIDCSMpCgwKBQYAAgEDEgMJKj0KCwoEBgACAhIDCgRgCgwKBQYAAgIBEgMKCBEKDAoFBgACAgUSAwoTGQoMCgUGAAICAhIDChozCgwKBQYAAgIGEgMKPkQKDAoFBgACAgMSAwpFXmIGcHJvdG8z'; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'queue_v1.proto', dependencies: [ 'protos/queue.proto', @@ -35,8 +35,11 @@ public function register(Pool\Registry $pool): void services: [ new File\ServiceDescriptor( name: 'Thesis.Queue.V1.QueueService', - clientFqcn: \Thesis\Queue\V1\QueueServiceClient::class, - serverFqcn: \Thesis\Queue\V1\QueueServiceServer::class, + methods: [ + new File\MethodDescriptor('Push', true, false), + new File\MethodDescriptor('Pull', false, true), + new File\MethodDescriptor('Heartbeat', true, true), + ], ), ], )); diff --git a/tests/snapshots/grpc/Thesis/autoload.metadata.php b/tests/snapshots/grpc/Thesis/autoload.metadata.php index 641c4c6..f67b22a 100644 --- a/tests/snapshots/grpc/Thesis/autoload.metadata.php +++ b/tests/snapshots/grpc/Thesis/autoload.metadata.php @@ -9,9 +9,9 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Thesis\Auth\V1\AuthV1DescriptorRegistry()), - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Thesis\Auth\ProtosAuthDescriptorRegistry()), - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Thesis\Queue\ProtosQueueDescriptorRegistry()), - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Thesis\Queue\V1\QueueV1DescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Thesis\Auth\V1\AuthV1DescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Thesis\Auth\ProtosAuthDescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Thesis\Queue\ProtosQueueDescriptorRegistry()), + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Thesis\Queue\V1\QueueV1DescriptorRegistry()), ); diff --git a/tests/snapshots/no_package/Tmp/NoPkg/TestDescriptorRegistry.php b/tests/snapshots/no_package/Tmp/NoPkg/TestDescriptorRegistry.php index ebd7dc0..df06d23 100644 --- a/tests/snapshots/no_package/Tmp/NoPkg/TestDescriptorRegistry.php +++ b/tests/snapshots/no_package/Tmp/NoPkg/TestDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Tmp\NoPkg; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class TestDescriptorRegistry implements Pool\Registrar +final readonly class TestDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cgp0ZXN0LnByb3RvIhUKAUESEAoBYhgBIAEoCzICLkJSAWIiEQoBQhIMCgF2GAEgASgJUgF2Qg/4AQHKAglUbXBcTm9Qa2dKxQEKBhIEAAAKAQoICgEMEgMAABIKCAoBCBIDAgAkCgkKAggpEgMCACQKCgoCBAASBAQABgEKCgoDBAABEgMECAkKCwoEBAACABIDBQIKCgwKBQQAAgAGEgMFAgMKDAoFBAACAAESAwUEBQoMCgUEAAIAAxIDBQgJCgoKAgQBEgQIAAoBCgoKAwQBARIDCAgJCgsKBAQBAgASAwkCDwoMCgUEAQIABRIDCQIICgwKBQQBAgABEgMJCQoKDAoFBAECAAMSAwkNDmIGcHJvdG8z'; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'test.proto', messages: [ new File\MessageDescriptor('A', \Tmp\NoPkg\A::class), diff --git a/tests/snapshots/no_package/Tmp/NoPkg/autoload.metadata.php b/tests/snapshots/no_package/Tmp/NoPkg/autoload.metadata.php index cf3b1ce..9a94830 100644 --- a/tests/snapshots/no_package/Tmp/NoPkg/autoload.metadata.php +++ b/tests/snapshots/no_package/Tmp/NoPkg/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Tmp\NoPkg\TestDescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Tmp\NoPkg\TestDescriptorRegistry()), ); diff --git a/tests/snapshots/php_namespace/Thesis/Api/V1/PhpNamespaceDescriptorRegistry.php b/tests/snapshots/php_namespace/Thesis/Api/V1/PhpNamespaceDescriptorRegistry.php index 32288de..2468fde 100644 --- a/tests/snapshots/php_namespace/Thesis/Api/V1/PhpNamespaceDescriptorRegistry.php +++ b/tests/snapshots/php_namespace/Thesis/Api/V1/PhpNamespaceDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Thesis\Api\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class PhpNamespaceDescriptorRegistry implements Pool\Registrar +final readonly class PhpNamespaceDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'ChNwaHBfbmFtZXNwYWNlLnByb3RvEgt0ZXN0LmFwaS52MSINCgtUZXN0UmVxdWVzdEIZ+AEBwgIDS2VrygINVGhlc2lzXEFwaVxWMUpdCgYSBAAABxYKCAoBDBIDAAASCggKAQgSAwIAKQoJCgIIKRIDAgApCggKAQgSAwMAIAoJCgIIKBIDAwAgCggKAQISAwUAFAoJCgIEABIDBwAWCgoKAwQAARIDBwgTYgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'php_namespace.proto', messages: [ new File\MessageDescriptor('test.api.v1.TestRequest', \Thesis\Api\V1\TestRequest::class), diff --git a/tests/snapshots/php_namespace/Thesis/Api/V1/autoload.metadata.php b/tests/snapshots/php_namespace/Thesis/Api/V1/autoload.metadata.php index ff28557..c0a5f2c 100644 --- a/tests/snapshots/php_namespace/Thesis/Api/V1/autoload.metadata.php +++ b/tests/snapshots/php_namespace/Thesis/Api/V1/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Thesis\Api\V1\PhpNamespaceDescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Thesis\Api\V1\PhpNamespaceDescriptorRegistry()), ); diff --git a/tests/snapshots/proto2/Proto/Api/V1/Proto2DescriptorRegistry.php b/tests/snapshots/proto2/Proto/Api/V1/Proto2DescriptorRegistry.php index db74100..b3a3d1c 100644 --- a/tests/snapshots/proto2/Proto/Api/V1/Proto2DescriptorRegistry.php +++ b/tests/snapshots/proto2/Proto/Api/V1/Proto2DescriptorRegistry.php @@ -13,20 +13,20 @@ namespace Proto\Api\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class Proto2DescriptorRegistry implements Pool\Registrar +final readonly class Proto2DescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cgxwcm90bzIucHJvdG8SDHByb3RvLmFwaS52MRofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8izSQKC1Rlc3RSZXF1ZXN0EjgKBGtpbmQYASACKA4yHi5wcm90by5hcGkudjEuVGVzdFJlcXVlc3QuS2luZDoEVk9JRFIEa2luZBIjCg1ib29sX3JlcXVpcmVkGAogAigIUgxib29sUmVxdWlyZWQSJQoOaW50MzJfcmVxdWlyZWQYCyACKAVSDWludDMyUmVxdWlyZWQSJQoOaW50NjRfcmVxdWlyZWQYDCACKANSDWludDY0UmVxdWlyZWQSKQoQZml4ZWQzMl9yZXF1aXJlZBgNIAIoB1IPZml4ZWQzMlJlcXVpcmVkEikKEGZpeGVkNjRfcmVxdWlyZWQYDiACKAZSD2ZpeGVkNjRSZXF1aXJlZBInCg91aW50MzJfcmVxdWlyZWQYDyACKA1SDnVpbnQzMlJlcXVpcmVkEicKD3VpbnQ2NF9yZXF1aXJlZBgQIAIoBFIOdWludDY0UmVxdWlyZWQSJQoOZ2xvYXRfcmVxdWlyZWQYESACKAJSDWdsb2F0UmVxdWlyZWQSJwoPZG91YmxlX3JlcXVpcmVkGBIgAigBUg5kb3VibGVSZXF1aXJlZBInCg9zdHJpbmdfcmVxdWlyZWQYEyACKAlSDnN0cmluZ1JlcXVpcmVkEiUKDmJ5dGVzX3JlcXVpcmVkGGUgAigMUg1ieXRlc1JlcXVpcmVkEicKD3NpbnQzMl9yZXF1aXJlZBhmIAIoEVIOc2ludDMyUmVxdWlyZWQSJwoPc2ludDY0X3JlcXVpcmVkGGcgAigSUg5zaW50NjRSZXF1aXJlZBIrChFzZml4ZWQzMl9yZXF1aXJlZBhoIAIoD1IQc2ZpeGVkMzJSZXF1aXJlZBIrChFzZml4ZWQ2NF9yZXF1aXJlZBhpIAIoEFIQc2ZpeGVkNjRSZXF1aXJlZBIjCg1ib29sX29wdGlvbmFsGB4gASgIUgxib29sT3B0aW9uYWwSJQoOaW50MzJfb3B0aW9uYWwYHyABKAVSDWludDMyT3B0aW9uYWwSJQoOaW50NjRfb3B0aW9uYWwYICABKANSDWludDY0T3B0aW9uYWwSKQoQZml4ZWQzMl9vcHRpb25hbBghIAEoB1IPZml4ZWQzMk9wdGlvbmFsEikKEGZpeGVkNjRfb3B0aW9uYWwYIiABKAZSD2ZpeGVkNjRPcHRpb25hbBInCg91aW50MzJfb3B0aW9uYWwYIyABKA1SDnVpbnQzMk9wdGlvbmFsEicKD3VpbnQ2NF9vcHRpb25hbBgkIAEoBFIOdWludDY0T3B0aW9uYWwSJQoOZmxvYXRfb3B0aW9uYWwYJSABKAJSDWZsb2F0T3B0aW9uYWwSJwoPZG91YmxlX29wdGlvbmFsGCYgASgBUg5kb3VibGVPcHRpb25hbBInCg9zdHJpbmdfb3B0aW9uYWwYJyABKAlSDnN0cmluZ09wdGlvbmFsEiYKDmJ5dGVzX29wdGlvbmFsGK0CIAEoDFINYnl0ZXNPcHRpb25hbBIoCg9zaW50MzJfb3B0aW9uYWwYrgIgASgRUg5zaW50MzJPcHRpb25hbBIoCg9zaW50NjRfb3B0aW9uYWwYrwIgASgSUg5zaW50NjRPcHRpb25hbBIsChFzZml4ZWQzMl9vcHRpb25hbBiwAiABKA9SEHNmaXhlZDMyT3B0aW9uYWwSLAoRc2ZpeGVkNjRfb3B0aW9uYWwYsQIgASgQUhBzZml4ZWQ2NE9wdGlvbmFsEiMKDWJvb2xfcmVwZWF0ZWQYFCADKAhSDGJvb2xSZXBlYXRlZBIlCg5pbnQzMl9yZXBlYXRlZBgVIAMoBVINaW50MzJSZXBlYXRlZBIlCg5pbnQ2NF9yZXBlYXRlZBgWIAMoA1INaW50NjRSZXBlYXRlZBIpChBmaXhlZDMyX3JlcGVhdGVkGBcgAygHUg9maXhlZDMyUmVwZWF0ZWQSKQoQZml4ZWQ2NF9yZXBlYXRlZBgYIAMoBlIPZml4ZWQ2NFJlcGVhdGVkEicKD3VpbnQzMl9yZXBlYXRlZBgZIAMoDVIOdWludDMyUmVwZWF0ZWQSJwoPdWludDY0X3JlcGVhdGVkGBogAygEUg51aW50NjRSZXBlYXRlZBIlCg5mbG9hdF9yZXBlYXRlZBgbIAMoAlINZmxvYXRSZXBlYXRlZBInCg9kb3VibGVfcmVwZWF0ZWQYHCADKAFSDmRvdWJsZVJlcGVhdGVkEicKD3N0cmluZ19yZXBlYXRlZBgdIAMoCVIOc3RyaW5nUmVwZWF0ZWQSJgoOYnl0ZXNfcmVwZWF0ZWQYyQEgAygMUg1ieXRlc1JlcGVhdGVkEigKD3NpbnQzMl9yZXBlYXRlZBjKASADKBFSDnNpbnQzMlJlcGVhdGVkEigKD3NpbnQ2NF9yZXBlYXRlZBjLASADKBJSDnNpbnQ2NFJlcGVhdGVkEiwKEXNmaXhlZDMyX3JlcGVhdGVkGMwBIAMoD1IQc2ZpeGVkMzJSZXBlYXRlZBIsChFzZml4ZWQ2NF9yZXBlYXRlZBjNASADKBBSEHNmaXhlZDY0UmVwZWF0ZWQSNAoUYm9vbF9yZXBlYXRlZF9wYWNrZWQYMiADKAhSEmJvb2xSZXBlYXRlZFBhY2tlZEICEAESNgoVaW50MzJfcmVwZWF0ZWRfcGFja2VkGDMgAygFUhNpbnQzMlJlcGVhdGVkUGFja2VkQgIQARI2ChVpbnQ2NF9yZXBlYXRlZF9wYWNrZWQYNCADKANSE2ludDY0UmVwZWF0ZWRQYWNrZWRCAhABEjoKF2ZpeGVkMzJfcmVwZWF0ZWRfcGFja2VkGDUgAygHUhVmaXhlZDMyUmVwZWF0ZWRQYWNrZWRCAhABEjoKF2ZpeGVkNjRfcmVwZWF0ZWRfcGFja2VkGDYgAygGUhVmaXhlZDY0UmVwZWF0ZWRQYWNrZWRCAhABEjgKFnVpbnQzMl9yZXBlYXRlZF9wYWNrZWQYNyADKA1SFHVpbnQzMlJlcGVhdGVkUGFja2VkQgIQARI4ChZ1aW50NjRfcmVwZWF0ZWRfcGFja2VkGDggAygEUhR1aW50NjRSZXBlYXRlZFBhY2tlZEICEAESNgoVZmxvYXRfcmVwZWF0ZWRfcGFja2VkGDkgAygCUhNmbG9hdFJlcGVhdGVkUGFja2VkQgIQARI4ChZkb3VibGVfcmVwZWF0ZWRfcGFja2VkGDogAygBUhRkb3VibGVSZXBlYXRlZFBhY2tlZEICEAESOQoWc2ludDMyX3JlcGVhdGVkX3BhY2tlZBj2AyADKBFSFHNpbnQzMlJlcGVhdGVkUGFja2VkQgIQARI5ChZzaW50NjRfcmVwZWF0ZWRfcGFja2VkGPcDIAMoElIUc2ludDY0UmVwZWF0ZWRQYWNrZWRCAhABEj0KGHNmaXhlZDMyX3JlcGVhdGVkX3BhY2tlZBj4AyADKA9SFnNmaXhlZDMyUmVwZWF0ZWRQYWNrZWRCAhABEj0KGHNmaXhlZDY0X3JlcGVhdGVkX3BhY2tlZBj5AyADKBBSFnNmaXhlZDY0UmVwZWF0ZWRQYWNrZWRCAhABEisKDmJvb2xfZGVmYXVsdGVkGCggASgIOgR0cnVlUg1ib29sRGVmYXVsdGVkEisKD2ludDMyX2RlZmF1bHRlZBgpIAEoBToCMzJSDmludDMyRGVmYXVsdGVkEisKD2ludDY0X2RlZmF1bHRlZBgqIAEoAzoCNjRSDmludDY0RGVmYXVsdGVkEjAKEWZpeGVkMzJfZGVmYXVsdGVkGCsgASgHOgMzMjBSEGZpeGVkMzJEZWZhdWx0ZWQSMAoRZml4ZWQ2NF9kZWZhdWx0ZWQYLCABKAY6AzY0MFIQZml4ZWQ2NERlZmF1bHRlZBIvChB1aW50MzJfZGVmYXVsdGVkGC0gASgNOgQzMjAwUg91aW50MzJEZWZhdWx0ZWQSLwoQdWludDY0X2RlZmF1bHRlZBguIAEoBDoENjQwMFIPdWludDY0RGVmYXVsdGVkEi8KD2Zsb2F0X2RlZmF1bHRlZBgvIAEoAjoGMzE0MTU5Ug5mbG9hdERlZmF1bHRlZBIxChBkb3VibGVfZGVmYXVsdGVkGDAgASgBOgYyNzE4MjhSD2RvdWJsZURlZmF1bHRlZBI7ChBzdHJpbmdfZGVmYXVsdGVkGDEgASgJOhBoZWxsbywgIndvcmxkISIKUg9zdHJpbmdEZWZhdWx0ZWQSMQoPYnl0ZXNfZGVmYXVsdGVkGJEDIAEoDDoHQmlnbm9zZVIOYnl0ZXNEZWZhdWx0ZWQSLwoQc2ludDMyX2RlZmF1bHRlZBiSAyABKBE6Ay0zMlIPc2ludDMyRGVmYXVsdGVkEi8KEHNpbnQ2NF9kZWZhdWx0ZWQYkwMgASgSOgMtNjRSD3NpbnQ2NERlZmF1bHRlZBIzChJzZml4ZWQzMl9kZWZhdWx0ZWQYlAMgASgPOgMtMzJSEXNmaXhlZDMyRGVmYXVsdGVkEjMKEnNmaXhlZDY0X2RlZmF1bHRlZBiVAyABKBA6Ay02NFIRc2ZpeGVkNjREZWZhdWx0ZWQSWwoRbWFwX3N0cmluZ19zdHJpbmcYlgMgAygLMi4ucHJvdG8uYXBpLnYxLlRlc3RSZXF1ZXN0Lk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSRAoPa25vd25fdGltZXN0YW1wGJcDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDmtub3duVGltZXN0YW1wEkEKDmtub3duX2R1cmF0aW9uGJgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINa25vd25EdXJhdGlvbhI7Cgxrbm93bl9zdHJ1Y3QYmQMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILa25vd25TdHJ1Y3QSOAoLa25vd25fZW1wdHkYmgMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ugprbm93bkVtcHR5EjIKCWtub3duX2FueRibAyABKAsyFC5nb29nbGUucHJvdG9idWYuQW55Ughrbm93bkFueRI5CgZuZXN0ZWQYnAMgASgLMiAucHJvdG8uYXBpLnYxLlRlc3RSZXF1ZXN0Lk5lc3RlZFIGbmVzdGVkEhYKBm51bWJlchgFIAEoBVIGbnVtYmVyEhIKBG5hbWUYBiABKAlSBG5hbWUSEgoEZGF0YRgHIAEoDFIEZGF0YRIVCgZ0ZW1wX2MYCCABKAFSBXRlbXBDEjIKA2NvbBgJIAEoCzIgLnByb3RvLmFwaS52MS5UZXN0UmVxdWVzdC5OZXN0ZWRSA2NvbBJLCglkZWVwX2VudW0YBCABKA4yLi5wcm90by5hcGkudjEuVGVzdFJlcXVlc3QuTmVzdGVkLkRlZXAuRGVlcEVudW1SCGRlZXBFbnVtEkcKC25lc3RlZF9kZWVwGJ0DIAEoCzIlLnByb3RvLmFwaS52MS5UZXN0UmVxdWVzdC5OZXN0ZWQuRGVlcFIKbmVzdGVkRGVlcBIhCgpsYXN0X2ZpZWxkGP////8BIAEoCVIJbGFzdEZpZWxkGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaxAIKBk5lc3RlZBISCgRuYW1lGAEgASgJUgRuYW1lEhQKBWdyb3VwGAIgASgJUgVncm91cBI5CgRkZWVwGAMgASgLMiUucHJvdG8uYXBpLnYxLlRlc3RSZXF1ZXN0Lk5lc3RlZC5EZWVwUgRkZWVwGtQBCgREZWVwEhIKBG5hbWUYASACKAlSBG5hbWUSFAoFcGhvbmUYAiABKAlSBXBob25lEhQKBWVtYWlsGAMgASgJUgVlbWFpbBJLCglkZWVwX2VudW0YBCABKA4yLi5wcm90by5hcGkudjEuVGVzdFJlcXVlc3QuTmVzdGVkLkRlZXAuRGVlcEVudW1SCGRlZXBFbnVtIjYKCERlZXBFbnVtEhcKFURFRVBfRU5VTV9VTlNQRUNJRklFRBIRCg1ERUVQX0VOVU1fRk9PEAFCBwoFdW5pb24iOgoES2luZBISChBLSU5EX1VOU1BFQ0lGSUVEEggKBFZPSUQQARIKCgZTVFJJTkcQAhIICgRCT09MEANCCQoHeF9maWVsZCKGAgoOQW5vdGhlclJlcXVlc3QSOAoGbmVzdGVkGAEgASgLMiAucHJvdG8uYXBpLnYxLlRlc3RSZXF1ZXN0Lk5lc3RlZFIGbmVzdGVkEjkKBGRlZXAYAiABKAsyJS5wcm90by5hcGkudjEuVGVzdFJlcXVlc3QuTmVzdGVkLkRlZXBSBGRlZXASMgoEa2luZBgDIAEoDjIeLnByb3RvLmFwaS52MS5UZXN0UmVxdWVzdC5LaW5kUgRraW5kEksKCWRlZXBfZW51bRgEIAEoDjIuLnByb3RvLmFwaS52MS5UZXN0UmVxdWVzdC5OZXN0ZWQuRGVlcC5EZWVwRW51bVIIZGVlcEVudW0qMgoDRm9vEhEKD0ZPT19VTlNQRUNJRklFRBILCgdGT09fQkFSEAESCwoHRk9PX0JBWhACSu9ECgcSBQAAlQEBCggKAQwSAwAAEgoICgECEgMCABUKCQoCAwASAwQAKQoJCgIDARIDBQAoCgkKAgMCEgMGACYKCQoCAwMSAwcAJQoJCgIDBBIDCAAjChsKAgUAEgQLABABGg8gRW51bSBjb21tZW50LgoKCgoDBQABEgMLBQgKHAoEBQACABIDDQQYGg8gQ2FzZSBjb21tZW50LgoKDAoFBQACAAESAw0EEwoMCgUFAAIAAhIDDRYXCgsKBAUAAgESAw4EEAoMCgUFAAIBARIDDgQLCgwK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'; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'proto2.proto', dependencies: [ 'google/protobuf/timestamp.proto', @@ -36,9 +36,9 @@ public function register(Pool\Registry $pool): void 'google/protobuf/any.proto', ], messages: [ - new File\MessageDescriptor('proto.api.v1.TestRequest', \Proto\Api\V1\TestRequest\XFieldDeepEnum::class), + new File\MessageDescriptor('proto.api.v1.TestRequest', \Proto\Api\V1\TestRequest::class), new File\MessageDescriptor('proto.api.v1.TestRequest.Nested', \Proto\Api\V1\TestRequest\Nested::class), - new File\MessageDescriptor('proto.api.v1.TestRequest.Nested.Deep', \Proto\Api\V1\TestRequest\Nested\Deep\UnionEmail::class), + new File\MessageDescriptor('proto.api.v1.TestRequest.Nested.Deep', \Proto\Api\V1\TestRequest\Nested\Deep::class), new File\MessageDescriptor('proto.api.v1.AnotherRequest', \Proto\Api\V1\AnotherRequest::class), ], enums: [ diff --git a/tests/snapshots/proto2/Proto/Api/V1/autoload.metadata.php b/tests/snapshots/proto2/Proto/Api/V1/autoload.metadata.php index dd69b56..a21040c 100644 --- a/tests/snapshots/proto2/Proto/Api/V1/autoload.metadata.php +++ b/tests/snapshots/proto2/Proto/Api/V1/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Proto\Api\V1\Proto2DescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Proto\Api\V1\Proto2DescriptorRegistry()), ); diff --git a/tests/snapshots/proto3/Proto/Api/V1/Proto3DescriptorRegistry.php b/tests/snapshots/proto3/Proto/Api/V1/Proto3DescriptorRegistry.php index a31a2ee..52cfeb4 100644 --- a/tests/snapshots/proto3/Proto/Api/V1/Proto3DescriptorRegistry.php +++ b/tests/snapshots/proto3/Proto/Api/V1/Proto3DescriptorRegistry.php @@ -13,23 +13,23 @@ namespace Proto\Api\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class Proto3DescriptorRegistry implements Pool\Registrar +final readonly class Proto3DescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'Cgxwcm90bzMucHJvdG8SDHByb3RvLmFwaS52MSK6AQoLVGVzdFJlcXVlc3QSIQoMc3RyaW5nX3ZhbHVlGAEgASgJUgtzdHJpbmdWYWx1ZRI3ChVvcHRpb25hbF9zdHJpbmdfdmFsdWUYAiABKAlIAVITb3B0aW9uYWxTdHJpbmdWYWx1ZYgBARIUCgVwaG9uZRgDIAEoCVIFcGhvbmUSFAoFZW1haWwYBCABKAlSBWVtYWlsQgkKB2NvbnRhY3RCGAoWX29wdGlvbmFsX3N0cmluZ192YWx1ZUq6AgoGEgQAAAsBCggKAQwSAwAAEgoICgECEgMCABUKCgoCBAASBAQACwEKCgoDBAABEgMECBMKCwoEBAACABIDBQQcCgwKBQQAAgAFEgMFBAoKDAoFBAACAAESAwULFwoMCgUEAAIAAxIDBRobCgsKBAQAAgESAwYELgoMCgUEAAIBBBIDBgQMCgwKBQQAAgEFEgMGDRMKDAoFBAACAQESAwYUKQoMCgUEAAIBAxIDBiwtCgwKBAQACAASBAcECgUKDAoFBAAIAAESAwcKEQoLCgQEAAICEgMICBkKDAoFBAACAgUSAwgIDgoMCgUEAAICARIDCA8UCgwKBQQAAgIDEgMIFxgKCwoEBAACAxIDCQgZCgwKBQQAAgMFEgMJCA4KDAoFBAACAwESAwkPFAoMCgUEAAIDAxIDCRcYYgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'proto3.proto', messages: [ - new File\MessageDescriptor('proto.api.v1.TestRequest', \Proto\Api\V1\TestRequest\ContactEmail::class), + new File\MessageDescriptor('proto.api.v1.TestRequest', \Proto\Api\V1\TestRequest::class), ], )); } diff --git a/tests/snapshots/proto3/Proto/Api/V1/autoload.metadata.php b/tests/snapshots/proto3/Proto/Api/V1/autoload.metadata.php index 721d897..8bea84e 100644 --- a/tests/snapshots/proto3/Proto/Api/V1/autoload.metadata.php +++ b/tests/snapshots/proto3/Proto/Api/V1/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Proto\Api\V1\Proto3DescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Proto\Api\V1\Proto3DescriptorRegistry()), ); diff --git a/tests/snapshots/reserved_names/ReservedTypes/ReservedNamesDescriptorRegistry.php b/tests/snapshots/reserved_names/ReservedTypes/ReservedNamesDescriptorRegistry.php index 233c944..cba2d7d 100644 --- a/tests/snapshots/reserved_names/ReservedTypes/ReservedNamesDescriptorRegistry.php +++ b/tests/snapshots/reserved_names/ReservedTypes/ReservedNamesDescriptorRegistry.php @@ -13,20 +13,20 @@ namespace ReservedTypes; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class ReservedNamesDescriptorRegistry implements Pool\Registrar +final readonly class ReservedNamesDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'ChRyZXNlcnZlZF9uYW1lcy5wcm90bxIOcmVzZXJ2ZWRfdHlwZXMiBgoEZXhpdCJECgpJTlNUQU5DRU9GEjYKBWJyZWFrGAEgASgLMiAucmVzZXJ2ZWRfdHlwZXMuQ2xhc3MuQ2FzZS5CcmVha1IFYnJlYWsiZAoFQ2xhc3MSNgoFYnJlYWsYASABKAsyIC5yZXNlcnZlZF90eXBlcy5DbGFzcy5DYXNlLkJyZWFrUgVicmVhaxojCgRDYXNlGhsKBUJyZWFrEhIKBG5hbWUYASABKAlSBG5hbWUqQgoKTm90QWxsb3dlZBIKCghhYnN0cmFjdBIHCgNhbmQQARIJCgVhcnJheRACEgkKBWVtcHR5EAMSCQoFY2xhc3MQBCoRCgZzdHJpbmcSBwoFWkVSTzEqEAoFVHJhaXQSBwoFWkVSTzJKuQUKBhIEAAAeAQoICgEMEgMAABIKCAoBAhIDAgAXCgoKAgUAEgQEAAoBCgoKAwUAARIDBAUPCgsKBAUAAgASAwUEEQoMCgUFAAIAARIDBQQMCgwKBQUAAgACEgMFDxAKCwoEBQACARIDBgQMCgwKBQUAAgEBEgMGBAcKDAoFBQACAQISAwYKCwoLCgQFAAICEgMHBA4KDAoFBQACAgESAwcECQoMCgUFAAICAhIDBwwNCgsKBAUAAgMSAwgEDgoMCgUFAAIDARIDCAQJCgwKBQUAAgMCEgMIDA0KCwoEBQACBBIDCQQOCgwKBQUAAgQBEgMJBAkKDAoFBQACBAISAwkMDQoJCgIFARIDDAAaCgoKAwUBARIDDAULCgsKBAUBAgASAwwOGAoMCgUFAQIAARIDDA4TCgwKBQUBAgACEgMMFhcKCQoCBQISAw4AGQoKCgMFAgESAw4FCgoLCgQFAgIAEgMODRcKDAoFBQICAAESAw4NEgoMCgUFAgIAAhIDDhUWCgkKAgQAEgMQAA8KCgoDBAABEgMQCAwKCgoCBAESBBIAFAEKCgoDBAEBEgMSCBIKCwoEBAECABIDEwQfCgwKBQQBAgAGEgMTBBQKDAoFBAECAAESAxMVGgoMCgUEAQIAAxIDEx0eCgoKAgQCEgQWAB4BCgoKAwQCARIDFggNCgwKBAQCAwASBBcEGwUKDAoFBAIDAAESAxcMEAoOCgYEAgMAAwASBBgIGgkKDgoHBAIDAAMAARIDGBAVCg8KCAQCAwADAAIAEgMZDBwKEAoJBAIDAAMAAgAFEgMZDBIKEAoJBAIDAAMAAgABEgMZExcKEAoJBAIDAAMAAgADEgMZGhsKCwoEBAICABIDHQQZCgwKBQQCAgAGEgMdBA4KDAoFBAICAAESAx0PFAoMCgUEAgIAAxIDHRcYYgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'reserved_names.proto', messages: [ new File\MessageDescriptor('reserved_types.exit', \ReservedTypes\Exit_::class), diff --git a/tests/snapshots/reserved_names/ReservedTypes/autoload.metadata.php b/tests/snapshots/reserved_names/ReservedTypes/autoload.metadata.php index d8171e1..8f79af1 100644 --- a/tests/snapshots/reserved_names/ReservedTypes/autoload.metadata.php +++ b/tests/snapshots/reserved_names/ReservedTypes/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \ReservedTypes\ReservedNamesDescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \ReservedTypes\ReservedNamesDescriptorRegistry()), ); diff --git a/tests/snapshots/snake_case/Proto/Api/V1/SnakeCaseDescriptorRegistry.php b/tests/snapshots/snake_case/Proto/Api/V1/SnakeCaseDescriptorRegistry.php index 906ca01..9ef524d 100644 --- a/tests/snapshots/snake_case/Proto/Api/V1/SnakeCaseDescriptorRegistry.php +++ b/tests/snapshots/snake_case/Proto/Api/V1/SnakeCaseDescriptorRegistry.php @@ -13,25 +13,25 @@ namespace Proto\Api\V1; use Override; -use Thesis\Protobuf\Pool; -use Thesis\Protobuf\Pool\File; +use Thesis\Protobuf\Registry; +use Thesis\Protobuf\Registry\File; /** * @api */ -final readonly class SnakeCaseDescriptorRegistry implements Pool\Registrar +final readonly class SnakeCaseDescriptorRegistry implements Registry\Registrar { private const string DESCRIPTOR_BUFFER = 'ChBzbmFrZV9jYXNlLnByb3RvEgxwcm90by5hcGkudjEi6wQKDFRlc3RfUmVxdWVzdBJBCgZuZXN0ZWQYASABKAsyKS5wcm90by5hcGkudjEuVGVzdF9SZXF1ZXN0Lk5lc3RlZF9NZXNzYWdlUgZuZXN0ZWQSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoDY29sGAMgASgLMikucHJvdG8uYXBpLnYxLlRlc3RfUmVxdWVzdC5OZXN0ZWRfTWVzc2FnZVIDY29sElUKCWRlZXBfZW51bRgEIAEoDjI4LnByb3RvLmFwaS52MS5UZXN0X1JlcXVlc3QuTmVzdGVkX01lc3NhZ2UuRGVlcC5EZWVwX0VudW1SCGRlZXBFbnVtEk8KC25lc3RlZF9kZWVwGAUgASgLMi4ucHJvdG8uYXBpLnYxLlRlc3RfUmVxdWVzdC5OZXN0ZWRfTWVzc2FnZS5EZWVwUgpuZXN0ZWREZWVwGo8CCg5OZXN0ZWRfTWVzc2FnZRJCCgRkZWVwGAEgASgLMi4ucHJvdG8uYXBpLnYxLlRlc3RfUmVxdWVzdC5OZXN0ZWRfTWVzc2FnZS5EZWVwUgRkZWVwGrgBCgREZWVwEhQKBXBob25lGAEgASgJUgVwaG9uZRIUCgVlbWFpbBgCIAEoCVIFZW1haWwSVQoJZGVlcF9lbnVtGAMgASgOMjgucHJvdG8uYXBpLnYxLlRlc3RfUmVxdWVzdC5OZXN0ZWRfTWVzc2FnZS5EZWVwLkRlZXBfRW51bVIIZGVlcEVudW0iJAoJRGVlcF9FbnVtEhcKFURFRVBfRU5VTV9VTlNQRUNJRklFREIHCgV1bmlvbkIJCgd4X2ZpZWxkIqsBCg9Bbm90aGVyX1JlcXVlc3QSQQoGbmVzdGVkGAEgASgLMikucHJvdG8uYXBpLnYxLlRlc3RfUmVxdWVzdC5OZXN0ZWRfTWVzc2FnZVIGbmVzdGVkElUKCWRlZXBfZW51bRgCIAEoDjI4LnByb3RvLmFwaS52MS5UZXN0X1JlcXVlc3QuTmVzdGVkX01lc3NhZ2UuRGVlcC5EZWVwX0VudW1SCGRlZXBFbnVtKhgKA0ZvbxIRCg9GT09fVU5TUEVDSUZJRURK/QcKBhIEAAAjAQoICgEMEgMAABIKCAoBAhIDAgAVCgoKAgUAEgQEAAYBCgoKAwUAARIDBAUICgsKBAUAAgASAwUEGAoMCgUFAAIAARIDBQQTCgwKBQUAAgACEgMFFhcKCgoCBAASBAgAHgEKCgoDBAABEgMICBQKDAoEBAADABIECQQWBQoMCgUEAAMAARIDCQwaCg4KBgQAAwADABIECggUCQoOCgcEAAMAAwABEgMKEBQKEAoIBAADAAMABAASBAsMDQ0KEAoJBAADAAMABAABEgMLERoKEQoKBAADAAMABAACABIDDBAqChIKCwQAAwADAAQAAgABEgMMECUKEgoLBAADAAMABAACAAISAwwoKQoQCggEAAMAAwAIABIEDwwSDQoQCgkEAAMAAwAIAAESAw8SFwoPCggEAAMAAwACABIDEBAhChAKCQQAAwADAAIABRIDEBAWChAKCQQAAwADAAIAARIDEBccChAKCQQAAwADAAIAAxIDEB8gCg8KCAQAAwADAAIBEgMRECEKEAoJBAADAAMAAgEFEgMREBYKEAoJBAADAAMAAgEBEgMRFxwKEAoJBAADAAMAAgEDEgMRHyAKDwoIBAADAAMAAgISAxMMJAoQCgkEAAMAAwACAgYSAxMMFQoQCgkEAAMAAwACAgESAxMWHwoQCgkEAAMAAwACAgMSAxMiIwoNCgYEAAMAAgASAxUIFgoOCgcEAAMAAgAGEgMVCAwKDgoHBAADAAIAARIDFQ0RCg4KBwQAAwACAAMSAxUUFQoLCgQEAAIAEgMXBB4KDAoFBAACAAYSAxcEEgoMCgUEAAIAARIDFxMZCgwKBQQAAgADEgMXHB0KDAoEBAAIABIEGAQcBQoMCgUEAAgAARIDGAoRCgsKBAQAAgESAxkIGQoMCgUEAAIBBRIDGQgNCgwKBQQAAgEBEgMZDhQKDAoFBAACAQMSAxkXGAoLCgQEAAICEgMaCB8KDAoFBAACAgYSAxoIFgoMCgUEAAICARIDGhcaCgwKBQQAAgIDEgMaHR4KCwoEBAACAxIDGwg0CgwKBQQAAgMGEgMbCCUKDAoFBAACAwESAxsmLwoMCgUEAAIDAxIDGzIzCgsKBAQAAgQSAx0EKAoMCgUEAAIEBhIDHQQXCgwKBQQAAgQBEgMdGCMKDAoFBAACBAMSAx0mJwoKCgIEARIEIAAjAQoKCgMEAQESAyAIFwoLCgQEAQIAEgMhBCsKDAoFBAECAAYSAyEEHwoMCgUEAQIAARIDISAmCgwKBQQBAgADEgMhKSoKCwoEBAECARIDIgQ9CgwKBQQBAgEGEgMiBC4KDAoFBAECAQESAyIvOAoMCgUEAQIBAxIDIjs8YgZwcm90bzM='; #[Override] - public function register(Pool\Registry $pool): void + public function register(Registry\Pool $pool): void { - $pool->add(Pool\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( + $pool->add(Registry\Descriptor::base64(self::DESCRIPTOR_BUFFER), new File( name: 'snake_case.proto', messages: [ - new File\MessageDescriptor('proto.api.v1.Test_Request', \Proto\Api\V1\TestRequest\XFieldDeepEnum::class), + new File\MessageDescriptor('proto.api.v1.Test_Request', \Proto\Api\V1\TestRequest::class), new File\MessageDescriptor('proto.api.v1.Test_Request.Nested_Message', \Proto\Api\V1\TestRequest\NestedMessage::class), - new File\MessageDescriptor('proto.api.v1.Test_Request.Nested_Message.Deep', \Proto\Api\V1\TestRequest\NestedMessage\Deep\UnionEmail::class), + new File\MessageDescriptor('proto.api.v1.Test_Request.Nested_Message.Deep', \Proto\Api\V1\TestRequest\NestedMessage\Deep::class), new File\MessageDescriptor('proto.api.v1.Another_Request', \Proto\Api\V1\AnotherRequest::class), ], enums: [ diff --git a/tests/snapshots/snake_case/Proto/Api/V1/autoload.metadata.php b/tests/snapshots/snake_case/Proto/Api/V1/autoload.metadata.php index c07b364..4683a32 100644 --- a/tests/snapshots/snake_case/Proto/Api/V1/autoload.metadata.php +++ b/tests/snapshots/snake_case/Proto/Api/V1/autoload.metadata.php @@ -9,6 +9,6 @@ declare(strict_types=1); -\Thesis\Protobuf\Pool\Registry::get()->register( - new \Thesis\Protobuf\Pool\OnceRegistrar(new \Proto\Api\V1\SnakeCaseDescriptorRegistry()), +\Thesis\Protobuf\Registry\Pool::get()->register( + new \Thesis\Protobuf\Registry\OnceRegistrar(new \Proto\Api\V1\SnakeCaseDescriptorRegistry()), );