Consists of Style
(just a function) and UIView
extension
public typealias Style<ViewT> = (ViewT) -> Void
public protocol Stylable {}
public extension Stylable {
@discardableResult
ToolKit | |
deps: https://github.com/elegantchaos/DictionaryCoding | |
AppKit | |
ComponentKit | |
RDXKit |
import Foundation | |
import UIKit | |
import RxSwift | |
import SnapKit | |
final class TemplateView: UIView, StatefulComponent { | |
var state: State? { | |
didSet { stateDidChange(from: oldValue) } | |
} |
Message<ContentT>
(заворачиваем в AnyMessage
)ChatNotification
ChatAccessory
MessageStore
— основная модель. Redux Store (cостоит из компонент State
, Action
и Reducer
). Для удобста компоненты разбиты на Local
и Feed
составляющие. Принцип работы:store.dispatch(.someAction(someParam))
static const char kNotAParen = 0;
static inline BOOL isOpenParen(char paren) {
return paren == '[' || paren == '(' || paren == '{';
}
static inline BOOL isCloseParen(char paren) {
return paren == ']' || paren == ')' || paren == '}';
Pick the range of commits (from A to B inclusive) from source branch and apply to destination branch
cherry-pick
git cherry-pick A~..B
orgit cherry-pick A^..B
(NB: Use A\\^
when using Oh-My-ZSH)rebase
0. Checkout a new temporary branch at the current location
git checkout -b tmp
##Primary Way
#define str_mk(name, ...) _##name; struct { char __VA_ARGS__; } name; char __##name
#define _(name, ...) char str_mk(name, ##__VA_ARGS__);
#define __(name, ...) str_mk(name, ##__VA_ARGS__)
#define ___(name, ...) str_mk(name, ##__VA_ARGS__)
#define ____(name) str_mk(name, dummy)
_(OTTDefaultTweakLib,
#Repo Decoration
###Object introspection
- (id)_shortMethodDescription;
- (id)_methodDescription;
- (id)__methodDescriptionForClass:(Class)arg1;
- (id)_ivarDescription;
- (id)__ivarDescriptionForClass:(Class)arg1;