header

fun <T : Any> header(key: Metadata.Key<T>, value: T): Self
fun <T : Any> header(key: Metadata.Key<T>, value: Function<Session, T>): Self
inline fun <T : Any> header(key: Metadata.Key<T>, crossinline value: (Session) -> T): Self
inline fun <T : Message, Builder : Message.Builder> header(    key: Metadata.Key<T>,     crossinline newBuilder: () -> Builder,     crossinline f: Builder.(Session) -> T): Self