enum class NinePMessageType(val value: UByte) { TVERSION(100u), RVERSION(101u), TAUTH(102u), RAUTH(103u), TATTACH(104u), RATTACH(105u), //TERROR(106), <--- illegal RERROR(107u), TFLUSH(108u), RFLUSH(109u), TWALK(110u), RWALK(111u), TOPEN(112u), ROPEN(113u), TCREATE(114u), RCREATE(115u), TREAD(116u), RREAD(117u), TWRITE(118u), RWRITE(119u), TCLUNK(120u), RCLUNK(121u), TREMOVE(122u), RREMOVE(123u), TSTAT(124u), RSTAT(125u), TWSTAT(126u), RWSTAT(127u); companion object { /** * Obtain a [NinePMessageType] instance by matching its value. * * @throws NoSuchElementException if no such element has the provided value. */ fun fromByte(value: UByte) = NinePMessageType.entries.first { it.value == value } } }