I hereby claim:
- I am banjun on github.
- I am banjun (https://keybase.io/banjun) on keybase.
- I have a public key ASCKLh62-ATKJawCqVs88yAl7RXvjVxgeGpW0T1LsZnF8Ao
To claim this, I am signing this object:
diff --git a/lib/AST/ConformanceLookupTable.cpp b/lib/AST/ConformanceLookupTable.cpp | |
index 51810ec39c..e496a11967 100644 | |
--- a/lib/AST/ConformanceLookupTable.cpp | |
+++ b/lib/AST/ConformanceLookupTable.cpp | |
@@ -482,6 +482,12 @@ bool ConformanceLookupTable::addProtocol(NominalTypeDecl *nominal, | |
// context. | |
AllConformances[dc].push_back(entry); | |
+ // banjun | |
+// printf("[Conformance] %s.%s: %s.%s\n", |
// % swift qrcli.swift TEST > qrcode.png | |
// or, % swift build -Xswiftc -framework -Xswiftc CoreImage | |
import CoreImage | |
import class AppKit.NSBitmapImageRep | |
func qrcode(_ text: String) -> CIImage { | |
let filter = CIFilter(name: "CIQRCodeGenerator")! | |
filter.setValue(text.data(using: .shiftJIS), forKey: "inputMessage") | |
filter.setValue("M", forKey: "inputCorrectionLevel") |
extension SignalProducerProtocol { | |
func resolveFuture(_ resolver: @escaping (Result<Value, Error>) -> Void) -> SignalProducer<Value, Error> { | |
return on(value: {resolver(.success($0))}) | |
.on(failed: {resolver(.failure($0))}) | |
} | |
// create SignalProducer that create Future with the autoclosure on start and send a result to the inner observer | |
init(_ future: @escaping @autoclosure (Void) -> Future<Value, Error>) { | |
self.init { observer, _ in | |
future().onSuccess {observer.send(value: $0)} |
<div class="mermaid"> | |
graph LR | |
subgraph ReactiveSwift | |
Signal("Signal#lt;Value, Error#gt;(state = not completed)") | |
Completed("(state = completed)") | |
Signal -- "Signal.Event.value(Value)" --> Signal | |
Signal -- "Signal.Event.failed(Error)" --> Completed | |
Signal -- "Signal.Event.completed" --> Completed | |
Signal -- "Signal.Event.interrupted" --> Completed | |
end |
extension AVCaptureDevice { | |
class func swizzle() { | |
[(#selector(AVCaptureDevice.defaultDevice(withMediaType:)), #selector(AVCaptureDevice.mockDefaultDevice(withMediaType:)))].forEach { | |
let original = class_getClassMethod(self, $0) | |
let mock = class_getClassMethod(self, $1) | |
method_exchangeImplementations(original, mock) | |
} | |
[(#selector(AVCaptureDevice.hasMediaType(_:)), #selector(AVCaptureDevice.mockHasMediaType(_:))), | |
(#selector(AVCaptureDevice.supportsAVCaptureSessionPreset(_:)), #selector(AVCaptureDevice.mockSupportsAVCaptureSessionPreset)), | |
(#selector(AVCaptureDevice.isTorchModeSupported(_:)), #selector(AVCaptureDevice.mockIsTorchModeSupported)), |
LEGACY_SWIFT_PODS = [] # set all the derived pods initially. e.g. %w(BrightFutures JetToTheFuture) | |
def set_legacy_swift(installer) | |
UI.warn "#{LEGACY_SWIFT_PODS.count} pods are marked as legacy swift: #{LEGACY_SWIFT_PODS}" | |
installer.pods_project.targets.select {|t| LEGACY_SWIFT_PODS.include? t.name}.each do |target| | |
pod_target = installer.pod_targets.find {|t| t.name == target.name} | |
unless pod_target.uses_swift? | |
UI.warn "#{target.name} does not use Swift." |
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { | |
guard let v = self.tableView(tableView, viewForHeaderInSection: section) else { return 0 } | |
guard #available(iOS 11, *) else { | |
let h = v.bounds.height | |
return h > 0 ? h : UITableViewAutomaticDimension | |
} | |
return UITableViewAutomaticDimension // super call returns 0 on UITableViewController, though not overriding this cause behaviors like automatic. | |
} | |
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { |
import Cocoa | |
import CoreMediaIO | |
import AVFoundation | |
class ViewController: NSViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
var prop = CMIOObjectPropertyAddress( | |
mSelector: CMIOObjectPropertySelector(kCMIOHardwarePropertyAllowScreenCaptureDevices), |
I hereby claim:
To claim this, I am signing this object:
extension SignalProducer { | |
// create SignalProducer that create Future with the autoclosure on start and send a result to the inner observer | |
init(_ future: @escaping @autoclosure () -> Future<Value, Error>) { | |
self.init { observer, _ in | |
future() | |
.onSuccess { | |
observer.send(value: $0) | |
observer.sendCompleted()} | |
.onFailure { | |
observer.send(error: $0)} |