in remote/src/main/scala/org/apache/pekko/remote/serialization/MiscMessageSerializer.scala [45:81]
def toBinary(obj: AnyRef): Array[Byte] = obj match {
case identify: Identify => serializeIdentify(identify)
case identity: ActorIdentity => serializeActorIdentity(identity)
case Some(value) => serializeSome(value)
case None => ParameterlessSerializedMessage
case o: Optional[_] => serializeOptional(o)
case r: ActorRef => serializeActorRef(r)
case s: Status.Success => serializeStatusSuccess(s)
case f: Status.Failure => serializeStatusFailure(f)
case StatusReply.Ack => Array.emptyByteArray
case r @ StatusReply.Success(_) => serializeStatusReplySuccess(r)
case r @ StatusReply.Error(_) => serializeStatusReplyError(r)
case ex: ActorInitializationException => serializeActorInitializationException(ex)
case ex: ThrowableNotSerializableException => serializeThrowableNotSerializableException(ex)
case t: Throwable => throwableSupport.serializeThrowable(t)
case PoisonPill => ParameterlessSerializedMessage
case Kill => ParameterlessSerializedMessage
case RemoteWatcher.Heartbeat => ParameterlessSerializedMessage
case Done => ParameterlessSerializedMessage
case NotUsed => ParameterlessSerializedMessage
case hbrsp: RemoteWatcher.HeartbeatRsp => serializeHeartbeatRsp(hbrsp)
case rs: RemoteScope => serializeRemoteScope(rs)
case LocalScope => ParameterlessSerializedMessage
case a: Address => serializeAddressData(a)
case u: UniqueAddress => serializeClassicUniqueAddress(u)
case c: Config => serializeConfig(c)
case dr: DefaultResizer => serializeDefaultResizer(dr)
case fc: FromConfig => serializeFromConfig(fc)
case bp: BalancingPool => serializeBalancingPool(bp)
case bp: BroadcastPool => serializeBroadcastPool(bp)
case rp: RandomPool => serializeRandomPool(rp)
case rrp: RoundRobinPool => serializeRoundRobinPool(rrp)
case sgp: ScatterGatherFirstCompletedPool => serializeScatterGatherFirstCompletedPool(sgp)
case tp: TailChoppingPool => serializeTailChoppingPool(tp)
case rrc: RemoteRouterConfig => serializeRemoteRouterConfig(rrc)
case _ => throw new IllegalArgumentException(s"Cannot serialize object of type [${obj.getClass.getName}]")
}