in remote/src/main/scala/org/apache/pekko/remote/serialization/MiscMessageSerializer.scala [384:423]
override def manifest(o: AnyRef): String =
o match {
case _: Identify => IdentifyManifest
case _: ActorIdentity => ActorIdentityManifest
case _: Option[Any] => OptionManifest
case _: Optional[_] => OptionalManifest
case _: ActorRef => ActorRefManifest
case _: Status.Success => StatusSuccessManifest
case _: Status.Failure => StatusFailureManifest
case StatusReply.Ack => StatusReplyAckManifest
case StatusReply.Success(_) => StatusReplySuccessManifest
case StatusReply.Error(_: StatusReply.ErrorMessage) => StatusReplyErrorMessageManifest
case StatusReply.Error(_) => StatusReplyErrorExceptionManifest
case _: ActorInitializationException => ActorInitializationExceptionManifest
case _: ThrowableNotSerializableException => ThrowableNotSerializableExceptionManifest
case _: Throwable => ThrowableManifest
case PoisonPill => PoisonPillManifest
case Kill => KillManifest
case RemoteWatcher.Heartbeat => RemoteWatcherHBManifest
case Done => DoneManifest
case NotUsed => NotUsedManifest
case _: Address => AddressManifest
case _: UniqueAddress => UniqueAddressManifest
case _: RemoteWatcher.HeartbeatRsp => RemoteWatcherHBRespManifest
case LocalScope => LocalScopeManifest
case _: RemoteScope => RemoteScopeManifest
case _: Config => ConfigManifest
case _: FromConfig => FromConfigManifest
case _: DefaultResizer => DefaultResizerManifest
case _: BalancingPool => BalancingPoolManifest
case _: BroadcastPool => BroadcastPoolManifest
case _: RandomPool => RandomPoolManifest
case _: RoundRobinPool => RoundRobinPoolManifest
case _: ScatterGatherFirstCompletedPool => ScatterGatherPoolManifest
case _: TailChoppingPool => TailChoppingPoolManifest
case _: RemoteRouterConfig => RemoteRouterConfigManifest
case _ =>
throw new IllegalArgumentException(s"Can't serialize object of type ${o.getClass} in [${getClass.getName}]")
}