* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class Swift extends CodeGeneratorAbstract { /** * @inheritDoc */ public function getFileName(string $file): string { return $file . '.swift'; } /** * @inheritDoc */ protected function newTypeGenerator(array $mapping): GeneratorInterface { return new Type\Swift($mapping); } /** * @inheritDoc */ protected function writeStruct( string $name, array $properties, ?string $extends, ?array $generics, StructType $origin, ): string { $code = 'class ' . $name . ': '; if (!empty($extends)) { $code.= $extends . ' '; } else { $code.= 'Codable '; } $code.= '{' . "\n"; foreach ($properties as $name => $property) { /** @var Code\Property $property */ $code.= $this->indent . 'var ' . $name . ': ' . $property->getType() . "\n"; } $code.= '}' . "\n"; return $code; } protected function writeMap(string $name, string $type, MapType $origin): string { return 'typealias ' . $name . ' = ' . $type . ';' . "\n"; } protected function writeArray(string $name, string $type, ArrayType $origin): string { return 'typealias ' . $name . ' = ' . $type . ';' . "\n"; } protected function writeUnion(string $name, string $type, UnionType $origin): string { return 'typealias ' . $name . ' = ' . $type . ';' . "\n"; } protected function writeIntersection(string $name, string $type, IntersectionType $origin): string { return 'typealias ' . $name . ' = ' . $type . ';' . "\n"; } protected function writeReference(string $name, string $type, ReferenceType $origin): string { return 'typealias ' . $name . ' = ' . $type . ';' . "\n"; } protected function writeHeader(TypeAbstract $origin): string { $code = ''; $comment = $origin->getDescription(); if (!empty($comment)) { $code.= '// ' . $comment . "\n"; } return $code; } } __halt_compiler();----SIGNATURE:----ZSViv73lfYsP/ci9Em/9pwDyGWoVCSPg/Nq6mq2uVN4haJsqeBxwx6Af7+/azKRS2tswytfy72xaabAcv5BkMhwuA35lNr7b71DVYSCvVx+OTf7q0THhyDAUNaNRU1r07TRLm3KEjwQyr+qeSFzqiZAEqbwxE84lgGUG8MyNK3ZOYSnh9i6iUC0RuDJcAOL9aIuwRQYzi1+xSMwE4l03f2KCOMblkjFnQHsFOx9rPY9fuk1LN2ThsdLtpHoyfqCCx8r0b5yxh8i449zmMFv74sHUohviT3CyI4fVkIZGvdWeQp442qV9iPa8zK6pUOWW5d8X7+tIlXYf3EisYfahdCu0cTEqVknxQo10ScrGKQUKxFPf6Aft4W+DHs5J4dGhwaOFo63FLN2jNxJbN+oWf5ircjvqS87I40VH9FUrkJyTQvjEm8xLPvxApzQ9wM3BogeqChuu2OoyQ98I9IG8eqDFkG3AIeD56UotsKPRIZRYz6CTvN+GILfk1V8DMKEZO/sonR1XMSUx18g5QUKxzmGIBK5m+YAUTYCmkAocR6e1g/wxNeem5XsHqmf6VS0qrOf+AydJ1LJuxIvmV+GXz4WnYrTjscpVEj+M3TTezJ49bniMkbN2rfcgDE2Fd6dNYDj03OTkQHMhiIaBZ3xsKyhiE8fZvhLE6fa6jMsk+zA=----ATTACHMENT:----OTU2NTMxNDM5MjYxNDgwOSAyNTM4NTU5NTQ0Mjc4NjI3IDg3Mzg1OTk4MjUxODA3MDI=