package namespace type FileSizeQuota struct { AllowanceKB int64 CurrentUsage int64 } func (f *FileSizeQuota) Allows(size int64) bool { return f.CurrentUsage + size <= f.AllowanceKB } func (f *FileSizeQuota) Add(size int64) error { if !f.Allows(size) { return ErrExceedQuota } f.CurrentUsage += size return nil } func (f *FileSizeQuota) Remove(size int64) error { if size > f.CurrentUsage { return ErrQuotaInvalid } f.CurrentUsage -= size return nil }