Is it safe to cast DispatchData to Data this way?

@David_Smith: This is going to sound wishy-washy, but I feel I still have no intuition for how types work in Swift. I've been using the language for 5 years and I can't explain what "as" does. Like in this case, why "x as Z" fails, when "x as Y as Z" works, or how that's different from "x as Y2 as Z". Or how these relate to their Objective-C types, or how many times they're copying data. Or how to make my own types run a function for "as", or if that's even possible.

Anyway, beyond the question in the subject line here, I don't know what to ask. (I'm not sure learning C++ is a great use of my time right now.) I'm just feeling a bit frustrated. If I come up with any other specific questions, I'll ask. Thanks.