slidenumber: true autoscale: true
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
struct TimeoutError: Error {} | |
extension Result where Failure == any Error { | |
init(catching: () async throws -> Success) async { | |
do { | |
self = .success(try await catching()) | |
} catch { | |
self = .failure(error) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
struct TimeoutError: Error {} | |
extension Result where Failure == any Error { | |
init(catching: () async throws -> Success) async { | |
do { | |
self = .success(try await catching()) | |
} catch { | |
self = .failure(error) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct TimeoutError: Error {} | |
// 記事のコードそのまま | |
func runWithTimeout<T>( | |
timeout: Duration, | |
_ operation: @Sendable () async throws -> T | |
) async throws -> T { | |
return try await withoutActuallyEscaping(operation) { operation in | |
return try await withThrowingTaskGroup(of: T?.self) { g in | |
g.addTask(operation: operation) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol Middleware<Input, Output, NextInput, NextOutput> { | |
associatedtype Input | |
associatedtype Output | |
associatedtype NextInput | |
associatedtype NextOutput | |
} | |
protocol Routes<Input, Output> { | |
associatedtype Input | |
associatedtype Output |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Auth } from "@firebase/auth"; | |
import * as firebaseui from "firebaseui"; | |
import { ReactElement, useEffect, useRef, useState } from "react"; | |
import { Random } from "../../components/Random"; | |
import { Box, BoxProps } from "@chakra-ui/react"; | |
export type FirebaseAuthViewProps = { | |
auth: Auth; | |
config: firebaseui.auth.Config; | |
} & BoxProps; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension YearMonthDay: PostgresDataConvertible { | |
public static var postgresDataType: PostgresDataType { | |
.date | |
} | |
public init?(postgresData: PostgresData) { | |
guard let date = postgresData.date else { | |
return nil | |
} | |
self.init(date: date, calendar: .gregorian, timeZone: .gmt) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import NIO | |
extension EventLoop { | |
func chain<V0>( | |
_ v0: @escaping () throws -> EventLoopFuture<V0> | |
) -> EventLoopFuture<V0> { | |
self.tryFlatSubmit { try v0() } | |
} | |
func chain<V0, V1>( |
NewerOlder