Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

84
Vistas
Requisito genérico de que Some: AsyncSequence no está lanzando

Me gustaría extender AsyncSequence de manera que dependa de si la secuencia puede lanzar. Ni AsyncSequence ni AsyncIteratorProtocol distinguen dichas secuencias explícitamente. Sin embargo, el módulo de concurrencia viene con secuencias concretas con variantes de lanzamiento y no lanzamiento. La única diferencia genérica que veo es que el next método de secuencias sin lanzamiento es el lanzamiento. Aquí hay un ejemplo:

 extension AsyncMapSequence : AsyncSequence { struct Iterator : AsyncIteratorProtocol { mutating func next() async rethrows -> Transformed? } }

Mientras que la variante de lanzamiento es un throws simple:

 extension AsyncThrowingMapSequence : AsyncSequence { struct Iterator : AsyncIteratorProtocol { mutating func next() async throws -> Transformed? } }

(Ni siquiera estoy seguro de cómo es posible rethrows a lanzar para un método que no acepta ningún argumento. Lo único que se me ocurre es que la expresión curry de dicho método podría arrojar algo de luz sobre eso...)

Entonces, la pregunta es cómo expresar algo como:

 extension AsyncSequence where AsyncIterator /* is not throwing */ { }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Cuando esta propuesta se implemente por completo, podrá expresar la conformidad con una secuencia fallida proporcionando algo de azúcar de sintaxis.

 extension AsyncSequence where nothrow AsyncIterator {

o

 struct Foo<S: nothrow AsyncSequence>

Esto proviene de la anotación @rethrows actualmente adjunta a AsyncSequence

 @rethrows public protocol AsyncSequence
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda