Skip to content

Instantly share code, notes, and snippets.

import Combine
import SwiftUI
struct IndexedCollection<Base: RandomAccessCollection>: RandomAccessCollection {
typealias Index = Base.Index
typealias Element = (index: Index, element: Base.Element)
let base: Base
var startIndex: Index { base.startIndex }
@sidepelican
sidepelican / combinationMask.swift
Created June 28, 2019 14:28
複数パスの図形を反転してマスク
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.backgroundColor = .white
}
@sidepelican
sidepelican / combinationMask.swift
Created June 28, 2019 14:28
複数パスの図形を反転してマスク
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.backgroundColor = .white
}
@sidepelican
sidepelican / ContentView.swift
Created June 10, 2019 22:49
BindableObjectのdidChangeは毎回同じものを返してね
import Combine
import SwiftUI
class MyPublisher<T, E>: Publisher where E: Error {
func receive<S>(subscriber: S) where S : Subscriber, Failure == S.Failure, Output == S.Input {
inner.receive(subscriber: subscriber)
Swift.print(#function, #line)
}
typealias Output = T
import SwiftUI
struct MyNumber: View {
private let value: Int
init() {
print(#function, #line)
value = 1000
}
@sidepelican
sidepelican / a.swift
Last active June 5, 2019 03:11
SwiftUI List rebuild test
import SwiftUI
struct User: Identifiable {
var id: Int
init(id: Int) {
self.id = id
}
}
enum elseer<T> {
case `true`(T)
case `false`
func `else` (falseClosure: ()->(T)) -> T {
switch self {
case .true(let result):
return result
case .false: