يرجى إنشاء الملف التمهيدي للكود التالي:
الخاص const val CITY\_CODE\_LENGTH = 3

/\*\*
 \* نوع صغير يحتوي على رمز المدينة.
 \*
 \* يتكون رمز المدينة من 3 أحرف وهو صالح داخل Glovo فقط.
 \*/
@JvmInline
فئة القيمة CityCode(قيمة القيمة: سلسلة) {
 فيه {
 require(value.length == CITY\_CODE\_LENGTH) { "رمز المدينة بطول خاطئ: $value" }
 }

 كائن مصاحب {

 تحليل ممتع (القيمة: سلسلة): إما =
 إما.catch({ InvalidCityCodeError(value, it.message ?: "") }) { CityCode(value) }

 المتعة صالحة (القيمة: سلسلة): منطقية = تحليل (قيمة).isRight ()
 }
}

فئة البيانات InvalidCityCodeError (إدخال val: سلسلة، سبب val: سلسلة):
 DefaultInvalidInputError("رمز المدينة غير صالح: $reason")
{"evolved_from": null, "kind": "human", "source": "ewof/sharegpt-instruct-unfiltered-deduped"}