inline fun creator(crossinline create: (Parcel) -> T) = object : Creator { override fun createFromParcel(source: Parcel) = create(source) override fun newArray(size: Int) = arrayOfNulls(size) } // Allows for something like companion object { @JvmStatic val CREATOR = creator { parcel -> MyThing(parcel.readInt()) } }