guard

inline fun <T1, R> guard(p1: T1?, condition: Boolean = true, block: (T1) -> R): R?
inline fun <T1, T2, R> guard(p1: T1?, p2: T2?, block: (Pair<T1, T2>) -> R): R?
inline fun <T1, T2, R> guard(p1: T1?, p2: T2?, condition: Boolean = true, block: (Pair<T1, T2>) -> R): R?
inline fun <T1, T2, T3, R> guard(p1: T1?, p2: T2?, p3: T3?, block: (T1, T2, T3) -> R): R?
inline fun <T1, T2, T3, R> guard(p1: T1?, p2: T2?, p3: T3?, condition: Boolean = true, block: (T1, T2, T3) -> R): R?
inline fun <T1, T2, T3, T4, R> guard(p1: T1?, p2: T2?, p3: T3?, p4: T4?, condition: Boolean = true, block: (T1, T2, T3, T4) -> R): R?