Struct for throwaway objects, OpenStruct only when keys may change, or you have a hash and must have accessor methods.
# Fastest, needs to initialize a Struct first
T = Struct.new(:name)
t1 = T.new('test')
t1.name # => 'test'
t1.foo # => error!
# Fast, needs to use hash lookups