برنامهنویسان در شرکت *اسنپ* عادت دارند برای تشخیص اینکه ارور برگرداندهشده از متد چیست، کدهایی مثل کد زیر مینویسند:
```go
n, err := f.Read(data)
if err != nil {
if errors.Is(err, io.EOF) {
break
}
fmt.Println(err)
return
}
```
در نتیجه انتظار دارند پکیج مربوطه، همه ارورهایی که ممکن است برگردانده شوند را به شکل فیلد در خود داشته باشد.
متاسفانه یا خوشبختانه یک کتابخانهی فوقالعاده مفید به دست تیم فنی *اسنپ* رسیده است. این کتابخانه اگرچه بسیار مفید است و کارهای آنها را راحت میکند، اما این قاعده در آن برقرار نیست.
حالا برنامهنویسان *اسنپ* میخواهند برخلاف عادت خود عمل نکنند، بنابراین نیاز به یک پکیج کمکی برای پکیج اصلی دارند که ارورها را در خودش داشته باشد.
خوشبختانه این کتابخانه، سورسکد قابل خواندن (و نه تغییر) دارد و میتوان از آن به منظور توسعهی پکیج کمکی استفاده کرد.
# جزئیات پروژه
+ سورسکد فعلی شرکت را از [این لینک](/problemset/assignments/4367/download_problem_initial_project/113611/) دانلود کنید.
+ فایل `helper.go` در پکیج `helper` را به گونهای تغییر دهید تا فیلدهای ارورها در آن مقداردهی شوند.
+ باید با تغییرات جزئی در کتابخانه، برنامه شما دچار مشکل نشود. مثلا متن ارورها ممکن است تغییرات جزئی بکند.
+ در پکیج `helper` میتوانید به صورت زیر از کتابخانهی `the_lib` استفاده کنید.
```go
package helper
import (
"snapp/the_lib"
)
// the_lib.LoadData()
```
# آنچه باید آپلود کنید
فایل `helper.go` تغییریافتهی خود را آپلود کنید.