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
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

iOS13とmacOS CatalinaのWebSocketサポート

参加してなくてもついていけるもん!

WWDCゴリゴリキャッチアップ会 2019

@omochimetaru


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)

autoscale: true slidenumber: true

Visual Studio Code互換な

syntax highlighterの実装

わいわいswiftc #9

omochimetaru


// swift/stdlib/public/runtime/Metadata.cpp をプリプロセッサのみ実行した結果から抜粋
struct ValueWitnessTable;
namespace value_witness_types {
typedef OpaqueValue * (*initializeBufferWithCopyOfBuffer) (ValueBuffer *, ValueBuffer *, const Metadata *);
typedef void (*destroy) (OpaqueValue *, const Metadata *);
typedef OpaqueValue * (*initializeWithCopy) (OpaqueValue *, OpaqueValue *, const Metadata *);
typedef OpaqueValue * (*assignWithCopy) (OpaqueValue *, OpaqueValue *, const Metadata *);
typedef OpaqueValue * (*initializeWithTake) (OpaqueValue *, OpaqueValue *, const Metadata *);
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