View toTimestamp.swift
func toTimestamp(year: Int, month: Int, day: Int, hour: Int, minute: Int, seconds: Int, nanoseconds: Int, offsetInSeconds: Int) -> Double { | |
var year = year | |
year -= month <= 2 ? 1 : 0 | |
let era = (year >= 0 ? year : year - 399) / 400 | |
let yoe = year - era * 400 | |
let doy = (153*(month + (month > 2 ? -3 : 9)) + 2)/5 + day - 1 | |
let doe = yoe * 365 + yoe/4 - yoe/100 + doy | |
let dayCounts = era * 146097 + doe - 719468 | |
let seconds = dayCounts * 86400 + hour * 3600 + minute * 60 + seconds - offsetInSeconds | |
return Double(seconds) + Double(nanoseconds) / 1_000_000_000 |
View cube.swift
/// A rotating 3-D cube in terminal | |
/// Only works on macOS | |
/// Run `swift cube.swift` in a terminal application to run it. | |
/// For controlling the cube, see comments for `Key` in code. | |
import Darwin | |
enum RawModeError: Error { | |
case notATerminal | |
case failedToGetTerminalSetting |
View bird.swift
// This is the code for the Flappy Bird game running in a Unix terminal. | |
// Demo: https://twitter.com/daniel_duan/status/1327735679657250816?s=21 | |
// To run it, simply do "swift bird.swift" in a Unix command line. | |
#if canImport(Darwin) | |
import Darwin | |
#else | |
import Glibc | |
#endif | |
enum RawModeError: Error { |
View runInRawMode.swift
#if canImport(Darwin) | |
import Darwin | |
#else | |
import Glibc | |
#endif | |
enum RawModeError: Error { | |
case notATerminal | |
case failedToGetTerminalSetting | |
case failedToSetTerminalSetting |
View EscapingClosurePropertyWrapper.swift
@propertyWrapper | |
struct Escaping { | |
typealias Closure = () -> Void | |
var store: Closure | |
var wrappedValue: Closure { | |
get { self.store } | |
set { self.store = newValue } | |
} |
View SpeakBubble.swift
import SwiftUI | |
struct ChaoticPhoto: View { | |
let image: Image | |
let radius: CGFloat | |
@Binding var activated: Bool | |
@State var scale: CGFloat = 1 | |
var body: some View { | |
image | |
.resizable() |
View drstring.sh
#!/bin/bash | |
temp_file=$(mktemp) | |
echo 'FROM swift@sha256:c4d53af406c5dc48bd43c0d313f3ed80924eee4bf78907ce4ad6eb8f5513f376' >> temp_file | |
echo 'RUN git clone https://github.com/dduan/DrString.git; cd DrString; make build; cp .build/release/drstring /bin/drstring' >> temp_file | |
echo 'RUN rm -rf /data' >> temp_file | |
echo 'ADD . /data' >> temp_file | |
echo 'WORKDIR /data' >> temp_file | |
echo 'ENTRYPOINT ["drstring"]' >> temp_file |
View RemoveDuplicates.swift
import Combine | |
@available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) | |
extension Publisher { | |
func removeDuplicates<Property>(by keyPath: KeyPath<Output, Property>) | |
-> Publishers.RemoveDuplicates<Self> where Property: Equatable | |
{ | |
return self.removeDuplicates { | |
$0[keyPath: keyPath] == $1[keyPath: keyPath] | |
} |
View BidirectionalCollection+firstIndex.swift
/// Usage: myString.firstIndex(of: otherString) | |
extension BidirectionalCollection where Element: Equatable { | |
func firstIndex(of other: Self) -> Index? { | |
guard | |
let start = other.first.flatMap(self.firstIndex(of:)), | |
self[start...].count >= other.count, | |
case let end = self.index(start, offsetBy: other.count), | |
zip(self[start ..< end], other).allSatisfy(==) | |
else | |
{ |
View Repro.swift
import Dispatch | |
class Runner { | |
var observers = [String: () -> Void]() | |
let queue = DispatchQueue(label: "foo-queue") | |
func run() { | |
let observers = self.observers | |
for _ in 0..<20000 { | |
let c: () -> Void = { [weak self] in |
NewerOlder