| 1398 | } |
| 1399 | |
| 1400 | const withStatement = <A, X, E, R>( |
| 1401 | self: StatementImpl<A>, |
| 1402 | span: Tracer.Span, |
| 1403 | f: (statement: StatementImpl<A>) => Effect.Effect<X, E, R> |
| 1404 | ) => |
| 1405 | Effect.withFiber<X, E, R>((fiber) => { |
| 1406 | const transform = fiber.getRef(CurrentTransformer) |
| 1407 | if (transform === undefined) { |
| 1408 | return f(self) |
| 1409 | } |
| 1410 | return Effect.flatMap( |
| 1411 | transform( |
| 1412 | self, |
| 1413 | make(self.acquirer, self.compiler, self.spanAttributes, self.transformRows), |
| 1414 | fiber, |
| 1415 | span |
| 1416 | ) as Effect.Effect<StatementImpl<A>>, |
| 1417 | f |
| 1418 | ) |
| 1419 | }) |
| 1420 | |
| 1421 | const isSegment = (u: unknown): u is Segment => { |
| 1422 | if (!hasProperty(u, "_tag")) { |