Given that a hash is not ordered, is this reliable?

  h = { :a=>1, :b=>2 }
  Struct.new(*h.keys).new(*h.values)
  => #<struct #<Class:0xb7aead00> a=1, b=2>

T.