Skip to content

Instantly share code, notes, and snippets.

View omochi's full-sized avatar
🏠
Working from home

omochimetaru omochi

🏠
Working from home
  • Qoncept, Inc
  • Yokohama
View GitHub Profile
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)
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)
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)
protocol Middleware<Input, Output, NextInput, NextOutput> {
associatedtype Input
associatedtype Output
associatedtype NextInput
associatedtype NextOutput
}
protocol Routes<Input, Output> {
associatedtype Input
associatedtype Output
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;

slidenumber: true autoscale: true

Swift6のprotocol

わいわいswiftc #36

@omochimetaru


slidenumber: true autoscale: true

SwiftSyntaxを

うまく使おう

わいわいswiftc #35

@omochimetaru


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)
import NIO
extension EventLoop {
func chain<V0>(
_ v0: @escaping () throws -> EventLoopFuture<V0>
) -> EventLoopFuture<V0> {
self.tryFlatSubmit { try v0() }
}
func chain<V0, V1>(

slidenumber: true autoscale: true

今から使える

SwiftとC++の

新しいinterop手法

わいわいswiftc #29

@omochimetaru