code: public byte[] write(CoroutineRunner runner) {
          if (runner == null) {
              throw new NullPointerException();
          }
  
          SerializedState serializeState = deconstruct(runner);
          return serializer.serialize(serializeState);
      }
docs: Serializes a {@link CoroutineRunner} object as a byte array.
  @param runner coroutine runner to serialize
  @return {@code runner} serialized to byte array
  @throws NullPointerException if any argument is {@code null}
  @throws IllegalArgumentException if failed to serialize