   }
 
   public var description: String {
-    return "TimeStore(year: \(year), month: \(month), day: \(day), " +
+    return "TimeBuffer(year: \(year), month: \(month), day: \(day), " +
         "hour: \(hour), minute: \(minute), second: \(second), " +
         "weekday: \(weekday), yearday: \(yearday), isDst: \(isDst))"
   }

import Glibc


public struct TimeStore: CustomStringConvertible {

  public var store: UnsafeMutablePointer<tm>

  public init(secondsSinceEpoch: Int) {
    var n = secondsSinceEpoch
    self.store = gmtime(&n)
  }

  public init() {
    var n = time(nil)
    self.store = gmtime(&n)
  }

  public init(store: UnsafeMutablePointer<tm>) {
    self.store = store
  }

  public var isDst: Bool { return store.memory.tm_isdst == 1 }

  public var yearday: Int32 { return store.memory.tm_yday }

  public var weekday: Int32 { return store.memory.tm_wday }

  public var year: Int32 { return store.memory.tm_year }

  public var month: Int32 { return store.memory.tm_mon }

  public var day: Int32 { return store.memory.tm_mday }

  public var hour: Int32 { return store.memory.tm_hour }

  public var minute: Int32 { return store.memory.tm_min }

  public var second: Int32 { return store.memory.tm_sec }

  public var secondsSinceEpoch: Int {
    var r = Int(second)

    set {
      var n = newValue
      _secondsSinceEpoch = n
      _buffer = TimeBuffer(buffer: gmtime(&n))
    }
  }

  public var buffer: TimeBuffer {
    return _buffer
  }

}


public struct Time {

  public init() {

  }

}
