[{"data":1,"prerenderedAt":2564},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-errs-api":449,"-hu-errs-api-surround":2559},[4,45,120,158,174,204,234,260,272,288,308,327,340,357,374,387,399,426],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F01.getting-started",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F01.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F01.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F01.getting-started\u002F3.first-module","i-lucide-package-plus",{"title":26,"path":27,"stem":28,"icon":29},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F01.getting-started\u002F4.project-structure","i-lucide-folder-tree",{"title":31,"path":32,"stem":33,"icon":34},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F01.getting-started\u002F5.sample-app","i-lucide-shopping-cart",{"title":36,"path":37,"stem":38,"icon":39},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F01.getting-started\u002F6.coming-from-laravel","i-lucide-arrow-right-left",{"title":41,"path":42,"stem":43,"icon":39},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F01.getting-started\u002F7.coming-from-symfony",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F02.cli",[51,55,60,65,70,75,80,85,90,95,100,105,110,115],{"title":52,"path":53,"stem":54,"icon":47},"Áttekintés","\u002Fhu\u002Fcli\u002Foverview","hu\u002F02.cli\u002F1.overview",{"title":56,"path":57,"stem":58,"icon":59},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F02.cli\u002F10.add-compose","i-lucide-container",{"title":61,"path":62,"stem":63,"icon":64},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F02.cli\u002F11.add-mail","i-lucide-mail-plus",{"title":66,"path":67,"stem":68,"icon":69},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F02.cli\u002F12.add-notification","i-lucide-bell-plus",{"title":71,"path":72,"stem":73,"icon":74},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F02.cli\u002F13.add-realtime","i-lucide-radio-tower",{"title":76,"path":77,"stem":78,"icon":79},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F02.cli\u002F14.add-seeder","i-lucide-sprout",{"title":81,"path":82,"stem":83,"icon":84},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F02.cli\u002F2.new-project","i-lucide-folder-plus",{"title":86,"path":87,"stem":88,"icon":89},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F02.cli\u002F3.new-module","i-lucide-blocks",{"title":91,"path":92,"stem":93,"icon":94},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F02.cli\u002F4.add-surface","i-lucide-layers-2",{"title":96,"path":97,"stem":98,"icon":99},"add domain","\u002Fhu\u002Fcli\u002Fadd-domain","hu\u002F02.cli\u002F5.add-domain","i-lucide-box",{"title":101,"path":102,"stem":103,"icon":104},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F02.cli\u002F6.add-handler","i-lucide-webhook",{"title":106,"path":107,"stem":108,"icon":109},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F02.cli\u002F7.new-migration","i-lucide-file-plus",{"title":111,"path":112,"stem":113,"icon":114},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F02.cli\u002F8.worker-generators","i-lucide-cog",{"title":116,"path":117,"stem":118,"icon":119},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F02.cli\u002F9.add-db","i-lucide-database-zap",{"title":121,"icon":99,"path":122,"stem":123,"children":124,"page":44},"A framework","\u002Fhu\u002Fframework","hu\u002F03.framework",[125,129,134,139,143,148,153],{"title":126,"path":127,"stem":128,"icon":99},"A framework áttekintése","\u002Fhu\u002Fframework\u002Foverview","hu\u002F03.framework\u002F1.overview",{"title":130,"path":131,"stem":132,"icon":133},"Alkalmazás-életciklus","\u002Fhu\u002Fframework\u002Fapp","hu\u002F03.framework\u002F2.app","i-lucide-power",{"title":135,"path":136,"stem":137,"icon":138},"Szerver","\u002Fhu\u002Fframework\u002Fserver","hu\u002F03.framework\u002F3.server","i-lucide-server",{"title":140,"path":141,"stem":142,"icon":114},"Worker","\u002Fhu\u002Fframework\u002Fworker","hu\u002F03.framework\u002F4.worker",{"title":144,"path":145,"stem":146,"icon":147},"Realtime","\u002Fhu\u002Fframework\u002Frealtime","hu\u002F03.framework\u002F5.realtime","i-lucide-radio",{"title":149,"path":150,"stem":151,"icon":152},"Migrációk","\u002Fhu\u002Fframework\u002Fmigrations","hu\u002F03.framework\u002F6.migrations","i-lucide-file-stack",{"title":154,"path":155,"stem":156,"icon":157},"Social login","\u002Fhu\u002Fframework\u002Fsocial-login","hu\u002F03.framework\u002F7.social-login","i-lucide-log-in",{"title":159,"icon":160,"path":161,"stem":162,"children":163,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F04.reference",[164,169],{"title":165,"path":166,"stem":167,"icon":168},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F04.reference\u002F1.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F04.reference\u002F2.dependencies","i-lucide-package",{"title":175,"icon":176,"path":177,"stem":178,"children":179,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F05.concepts",[180,185,190,194,199],{"title":181,"path":182,"stem":183,"icon":184},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F05.concepts\u002F1.architecture","i-lucide-layers",{"title":186,"path":187,"stem":188,"icon":189},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F05.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":165,"path":191,"stem":192,"icon":193},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F05.concepts\u002F3.configuration","i-lucide-settings-2",{"title":195,"path":196,"stem":197,"icon":198},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F05.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":200,"path":201,"stem":202,"icon":203},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F05.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":205,"icon":206,"path":207,"stem":208,"children":209,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F06.auth",[210,215,220,225,230],{"title":211,"path":212,"stem":213,"icon":214},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F06.auth\u002F1.overview","i-lucide-key-round",{"title":216,"path":217,"stem":218,"icon":219},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F06.auth\u002F2.rbac","i-lucide-users",{"title":221,"path":222,"stem":223,"icon":224},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F06.auth\u002F3.policy","i-lucide-gavel",{"title":226,"path":227,"stem":228,"icon":229},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F06.auth\u002F4.standalone","i-lucide-plug",{"title":231,"path":232,"stem":233,"icon":157},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F06.auth\u002F5.social-standalone",{"title":235,"icon":236,"path":237,"stem":238,"children":239,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F07.dbx",[240,243,247,251,256],{"title":52,"path":241,"stem":242,"icon":236},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F07.dbx\u002F1.overview",{"title":244,"path":245,"stem":246,"icon":229},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F07.dbx\u002F2.pg",{"title":248,"path":249,"stem":250,"icon":184},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F07.dbx\u002F3.bunx",{"title":252,"path":253,"stem":254,"icon":255},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F07.dbx\u002F4.transactions","i-lucide-git-merge",{"title":257,"path":258,"stem":259,"icon":79},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F07.dbx\u002F5.seed",{"title":261,"icon":193,"path":262,"stem":263,"children":264,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F08.envconf",[265,268],{"title":52,"path":266,"stem":267,"icon":193},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F08.envconf\u002F1.overview",{"title":269,"path":270,"stem":271,"icon":193},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F08.envconf\u002F2.recipes",{"title":273,"icon":189,"path":274,"stem":275,"children":276,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F09.errs",[277,280,284],{"title":52,"path":278,"stem":279,"icon":189},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F09.errs\u002F1.overview",{"title":281,"path":282,"stem":283,"icon":189},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F09.errs\u002F2.api",{"title":285,"path":286,"stem":287,"icon":189},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F09.errs\u002F3.integration",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F10.events",[294,298,303],{"title":295,"path":296,"stem":297,"icon":147},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F10.events\u002F1.overview",{"title":299,"path":300,"stem":301,"icon":302},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F10.events\u002F2.outbox","i-lucide-inbox",{"title":304,"path":305,"stem":306,"icon":307},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F10.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":309,"icon":310,"path":311,"stem":312,"children":313,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F11.httperr",[314,317,322],{"title":52,"path":315,"stem":316,"icon":310},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F11.httperr\u002F1.overview",{"title":318,"path":319,"stem":320,"icon":321},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F11.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":323,"path":324,"stem":325,"icon":326},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F11.httperr\u002F3.validation","i-lucide-badge-check",{"title":328,"icon":329,"path":330,"stem":331,"children":332,"page":44},"logx","i-lucide-scroll-text","\u002Fhu\u002Flogx","hu\u002F12.logx",[333,336],{"title":52,"path":334,"stem":335,"icon":329},"\u002Fhu\u002Flogx\u002Foverview","hu\u002F12.logx\u002F1.overview",{"title":337,"path":338,"stem":339,"icon":47},"Monolog-formázó","\u002Fhu\u002Flogx\u002Fmonolog","hu\u002F12.logx\u002F2.monolog",{"title":341,"icon":342,"path":343,"stem":344,"children":345,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[346,349,353],{"title":52,"path":347,"stem":348,"icon":342},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":350,"path":351,"stem":352,"icon":342},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":354,"path":355,"stem":356,"icon":342},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":358,"icon":359,"path":360,"stem":361,"children":362,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[363,366,370],{"title":52,"path":364,"stem":365,"icon":359},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":367,"path":368,"stem":369,"icon":359},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":371,"path":372,"stem":373,"icon":359},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":44},"paginate","i-lucide-list-ordered","\u002Fhu\u002Fpaginate","hu\u002F15.paginate",[380,383],{"title":52,"path":381,"stem":382,"icon":376},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F15.paginate\u002F1.overview",{"title":384,"path":385,"stem":386,"icon":39},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F15.paginate\u002F2.cursor",{"title":388,"icon":184,"path":389,"stem":390,"children":391,"page":44},"queue","\u002Fhu\u002Fqueue","hu\u002F16.queue",[392,395],{"title":52,"path":393,"stem":394,"icon":376},"\u002Fhu\u002Fqueue\u002Foverview","hu\u002F16.queue\u002F1.overview",{"title":396,"path":397,"stem":398,"icon":184},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F16.queue\u002F2.tasks",{"title":400,"icon":401,"path":402,"stem":403,"children":404,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F17.storage",[405,408,412,416,421],{"title":52,"path":406,"stem":407,"icon":401},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F17.storage\u002F1.overview",{"title":409,"path":410,"stem":411,"icon":401},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F17.storage\u002F2.disk-api",{"title":413,"path":414,"stem":415,"icon":401},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F17.storage\u002F3.local",{"title":417,"path":418,"stem":419,"icon":420},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F17.storage\u002F4.s3","i-lucide-cloud",{"title":422,"path":423,"stem":424,"icon":425},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F17.storage\u002F5.testing","i-lucide-flask-conical",{"title":427,"icon":428,"path":429,"stem":430,"children":431,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F18.telemetry",[432,435,439,444],{"title":52,"path":433,"stem":434,"icon":428},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F18.telemetry\u002F1.overview",{"title":436,"path":437,"stem":438,"icon":329},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F18.telemetry\u002F2.logging",{"title":440,"path":441,"stem":442,"icon":443},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F18.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":445,"path":446,"stem":447,"icon":448},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F18.telemetry\u002F4.sentry","i-lucide-bug",{"id":450,"title":281,"body":451,"description":2552,"extension":2553,"links":2554,"meta":2555,"navigation":2556,"path":282,"seo":2557,"stem":283,"__hash__":2558},"docs_hu\u002Fhu\u002F09.errs\u002F2.api.md",{"type":452,"value":453,"toc":2542},"minimark",[454,482,511,516,695,772,964,968,977,1092,1224,1243,1247,1305,1324,1328,1524,1568,1572,1605,1609,1829,1848,1917,1959,1963,2499,2503,2538],[455,456,457,458,461,462,465,466,469,470,473,474,477,478,481],"p",{},"Az ",[459,460,273],"code",{}," teljes felülete: öt konstruktor, négy attribútumfüggvény, három accessor, és a ",[459,463,464],{},"Define",", amivel egy hibamódot egyszer nevezel el és mindenhol újrahasználod. Minden itt leírt dolog együttműködik a sima ",[459,467,468],{},"errors.Is","\u002F",[459,471,472],{},"errors.As","-szal, mert az ",[459,475,476],{},"*errs.Error"," úgy wrappel, mint bármely más Go hiba. Lásd az ",[479,480,52],"a",{"href":278}," oldalt a telepítéshez és a kétüzenetes tervezési elvhez, amire ez az API épül.",[483,484,489],"pre",{"className":485,"code":486,"language":487,"meta":488,"style":488},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import \"github.com\u002Fgp-system\u002Ferrs\"\n","go","",[459,490,491],{"__ignoreMap":488},[492,493,496,500,504,508],"span",{"class":494,"line":495},"line",1,[492,497,499],{"class":498},"s7zQu","import",[492,501,503],{"class":502},"sMK4o"," \"",[492,505,507],{"class":506},"sBMFI","github.com\u002Fgp-system\u002Ferrs",[492,509,510],{"class":502},"\"\n",[512,513,515],"h2",{"id":514},"konstruktorok","Konstruktorok",[483,517,519],{"className":485,"code":518,"language":487,"meta":488,"style":488},"func New(msg string, attrs ...Attr) *Error\nfunc Errorf(format string, args ...any) *Error\nfunc Wrap(err error, msg string, attrs ...Attr) *Error\nfunc Wrapf(err error, format string, args ...any) *Error\nfunc NewPanic(recovered any, attrs ...Attr) *Error\n",[459,520,521,562,593,630,665],{"__ignoreMap":488},[492,522,523,526,530,533,537,541,544,547,550,553,556,559],{"class":494,"line":495},[492,524,525],{"class":502},"func",[492,527,529],{"class":528},"s2Zo4"," New",[492,531,532],{"class":502},"(",[492,534,536],{"class":535},"sHdIc","msg",[492,538,540],{"class":539},"spNyl"," string",[492,542,543],{"class":502},",",[492,545,546],{"class":535}," attrs",[492,548,549],{"class":502}," ...",[492,551,552],{"class":506},"Attr",[492,554,555],{"class":502},")",[492,557,558],{"class":502}," *",[492,560,561],{"class":506},"Error\n",[492,563,565,567,570,572,575,577,579,582,584,587,589,591],{"class":494,"line":564},2,[492,566,525],{"class":502},[492,568,569],{"class":528}," Errorf",[492,571,532],{"class":502},[492,573,574],{"class":535},"format",[492,576,540],{"class":539},[492,578,543],{"class":502},[492,580,581],{"class":535}," args",[492,583,549],{"class":502},[492,585,586],{"class":506},"any",[492,588,555],{"class":502},[492,590,558],{"class":502},[492,592,561],{"class":506},[492,594,596,598,601,603,606,609,611,614,616,618,620,622,624,626,628],{"class":494,"line":595},3,[492,597,525],{"class":502},[492,599,600],{"class":528}," Wrap",[492,602,532],{"class":502},[492,604,605],{"class":535},"err",[492,607,608],{"class":539}," error",[492,610,543],{"class":502},[492,612,613],{"class":535}," msg",[492,615,540],{"class":539},[492,617,543],{"class":502},[492,619,546],{"class":535},[492,621,549],{"class":502},[492,623,552],{"class":506},[492,625,555],{"class":502},[492,627,558],{"class":502},[492,629,561],{"class":506},[492,631,633,635,638,640,642,644,646,649,651,653,655,657,659,661,663],{"class":494,"line":632},4,[492,634,525],{"class":502},[492,636,637],{"class":528}," Wrapf",[492,639,532],{"class":502},[492,641,605],{"class":535},[492,643,608],{"class":539},[492,645,543],{"class":502},[492,647,648],{"class":535}," format",[492,650,540],{"class":539},[492,652,543],{"class":502},[492,654,581],{"class":535},[492,656,549],{"class":502},[492,658,586],{"class":506},[492,660,555],{"class":502},[492,662,558],{"class":502},[492,664,561],{"class":506},[492,666,668,670,673,675,678,681,683,685,687,689,691,693],{"class":494,"line":667},5,[492,669,525],{"class":502},[492,671,672],{"class":528}," NewPanic",[492,674,532],{"class":502},[492,676,677],{"class":535},"recovered",[492,679,680],{"class":506}," any",[492,682,543],{"class":502},[492,684,546],{"class":535},[492,686,549],{"class":502},[492,688,552],{"class":506},[492,690,555],{"class":502},[492,692,558],{"class":502},[492,694,561],{"class":506},[696,697,698,708,723,747,757],"ul",{},[699,700,701,707],"li",{},[702,703,704],"strong",{},[459,705,706],{},"New"," egy friss hibát indít, a hívási pontnál capture-ölve a stacket.",[699,709,710,715,716,718,719,722],{},[702,711,712],{},[459,713,714],{},"Errorf"," a ",[459,717,706],{}," ",[459,720,721],{},"fmt.Sprintf","-stílusú formázással, attribútumok nélkül.",[699,724,725,730,731,734,735,737,738,741,742,718,744,746],{},[702,726,727],{},[459,728,729],{},"Wrap"," egy új üzenetet fűz egy meglévő hibához, az eredetit okként megtartva; ",[459,732,733],{},"nil","-re ",[459,736,733],{},", tehát az ",[459,739,740],{},"errs.Wrap(err, \"...\")"," feltétel nélkül biztonságosan hívható egy potenciálisan ",[459,743,733],{},[459,745,605],{},"-re.",[699,748,749,715,754,756],{},[702,750,751],{},[459,752,753],{},"Wrapf",[459,755,729],{}," formázással.",[699,758,759,764,765,767,768,771],{},[702,760,761],{},[459,762,763],{},"NewPanic"," egy elkapott panic-értéket alakít ",[459,766,476],{},"-rá, aminek a stackje a panic helyére mutat, ",[459,769,770],{},"recover()"," kezelőben használatra.",[483,773,775],{"className":485,"code":774,"language":487,"meta":488,"style":488},"if err := repo.Save(ctx, order); err != nil {\n    return errs.Wrap(err, \"orders: save\", errs.With(\"order_id\", order.ID))\n}\n\nif err := validateQuantity(qty); err != nil {\n    return errs.Errorf(\"invalid quantity %d: %w\", qty, err)\n}\n",[459,776,777,822,879,884,890,916,959],{"__ignoreMap":488},[492,778,779,782,786,789,792,795,798,800,803,805,808,811,813,816,819],{"class":494,"line":495},[492,780,781],{"class":498},"if",[492,783,785],{"class":784},"sTEyZ"," err ",[492,787,788],{"class":502},":=",[492,790,791],{"class":784}," repo",[492,793,794],{"class":502},".",[492,796,797],{"class":528},"Save",[492,799,532],{"class":502},[492,801,802],{"class":784},"ctx",[492,804,543],{"class":502},[492,806,807],{"class":784}," order",[492,809,810],{"class":502},");",[492,812,785],{"class":784},[492,814,815],{"class":502},"!=",[492,817,818],{"class":502}," nil",[492,820,821],{"class":502}," {\n",[492,823,824,827,830,832,834,836,838,840,842,846,849,851,853,855,858,860,862,865,867,869,871,873,876],{"class":494,"line":564},[492,825,826],{"class":498},"    return",[492,828,829],{"class":784}," errs",[492,831,794],{"class":502},[492,833,729],{"class":528},[492,835,532],{"class":502},[492,837,605],{"class":784},[492,839,543],{"class":502},[492,841,503],{"class":502},[492,843,845],{"class":844},"sfazB","orders: save",[492,847,848],{"class":502},"\"",[492,850,543],{"class":502},[492,852,829],{"class":784},[492,854,794],{"class":502},[492,856,857],{"class":528},"With",[492,859,532],{"class":502},[492,861,848],{"class":502},[492,863,864],{"class":844},"order_id",[492,866,848],{"class":502},[492,868,543],{"class":502},[492,870,807],{"class":784},[492,872,794],{"class":502},[492,874,875],{"class":784},"ID",[492,877,878],{"class":502},"))\n",[492,880,881],{"class":494,"line":595},[492,882,883],{"class":502},"}\n",[492,885,886],{"class":494,"line":632},[492,887,889],{"emptyLinePlaceholder":888},true,"\n",[492,891,892,894,896,898,901,903,906,908,910,912,914],{"class":494,"line":667},[492,893,781],{"class":498},[492,895,785],{"class":784},[492,897,788],{"class":502},[492,899,900],{"class":528}," validateQuantity",[492,902,532],{"class":502},[492,904,905],{"class":784},"qty",[492,907,810],{"class":502},[492,909,785],{"class":784},[492,911,815],{"class":502},[492,913,818],{"class":502},[492,915,821],{"class":502},[492,917,919,921,923,925,927,929,931,934,938,941,944,946,948,951,953,956],{"class":494,"line":918},6,[492,920,826],{"class":498},[492,922,829],{"class":784},[492,924,794],{"class":502},[492,926,714],{"class":528},[492,928,532],{"class":502},[492,930,848],{"class":502},[492,932,933],{"class":844},"invalid quantity ",[492,935,937],{"class":936},"swJcz","%d",[492,939,940],{"class":844},": ",[492,942,943],{"class":936},"%w",[492,945,848],{"class":502},[492,947,543],{"class":502},[492,949,950],{"class":784}," qty",[492,952,543],{"class":502},[492,954,955],{"class":784}," err",[492,957,958],{"class":502},")\n",[492,960,962],{"class":494,"line":961},7,[492,963,883],{"class":502},[512,965,967],{"id":966},"attribútumok","Attribútumok",[455,969,457,970,972,973,976],{},[459,971,552],{}," egy ",[459,974,975],{},"func(*Error)",", sorrendben alkalmazva bármelyik konstruktorra:",[483,978,980],{"className":485,"code":979,"language":487,"meta":488,"style":488},"type Attr func(*Error)\n\nfunc Code(code string) Attr    \u002F\u002F gépi olvasású azonosító, üzenetátfogalmazás közben is stabil\nfunc Public(msg string) Attr   \u002F\u002F az egyetlen szöveg, amit a kliens valaha láthat\nfunc Status(code int) Attr     \u002F\u002F a HTTP-formájú státusz, amire ez a hiba leképeződik\nfunc With(key string, value any) Attr \u002F\u002F strukturált metadata, az adott wrap-szinten rögzítve\n",[459,981,982,998,1002,1023,1043,1064],{"__ignoreMap":488},[492,983,984,987,990,993,996],{"class":494,"line":495},[492,985,986],{"class":502},"type",[492,988,989],{"class":506}," Attr",[492,991,992],{"class":502}," func(*",[492,994,995],{"class":506},"Error",[492,997,958],{"class":502},[492,999,1000],{"class":494,"line":564},[492,1001,889],{"emptyLinePlaceholder":888},[492,1003,1004,1006,1009,1011,1013,1015,1017,1019],{"class":494,"line":595},[492,1005,525],{"class":502},[492,1007,1008],{"class":528}," Code",[492,1010,532],{"class":502},[492,1012,459],{"class":535},[492,1014,540],{"class":539},[492,1016,555],{"class":502},[492,1018,989],{"class":506},[492,1020,1022],{"class":1021},"sHwdD","    \u002F\u002F gépi olvasású azonosító, üzenetátfogalmazás közben is stabil\n",[492,1024,1025,1027,1030,1032,1034,1036,1038,1040],{"class":494,"line":632},[492,1026,525],{"class":502},[492,1028,1029],{"class":528}," Public",[492,1031,532],{"class":502},[492,1033,536],{"class":535},[492,1035,540],{"class":539},[492,1037,555],{"class":502},[492,1039,989],{"class":506},[492,1041,1042],{"class":1021},"   \u002F\u002F az egyetlen szöveg, amit a kliens valaha láthat\n",[492,1044,1045,1047,1050,1052,1054,1057,1059,1061],{"class":494,"line":667},[492,1046,525],{"class":502},[492,1048,1049],{"class":528}," Status",[492,1051,532],{"class":502},[492,1053,459],{"class":535},[492,1055,1056],{"class":539}," int",[492,1058,555],{"class":502},[492,1060,989],{"class":506},[492,1062,1063],{"class":1021},"     \u002F\u002F a HTTP-formájú státusz, amire ez a hiba leképeződik\n",[492,1065,1066,1068,1071,1073,1076,1078,1080,1083,1085,1087,1089],{"class":494,"line":918},[492,1067,525],{"class":502},[492,1069,1070],{"class":528}," With",[492,1072,532],{"class":502},[492,1074,1075],{"class":535},"key",[492,1077,540],{"class":539},[492,1079,543],{"class":502},[492,1081,1082],{"class":535}," value",[492,1084,680],{"class":506},[492,1086,555],{"class":502},[492,1088,989],{"class":506},[492,1090,1091],{"class":1021}," \u002F\u002F strukturált metadata, az adott wrap-szinten rögzítve\n",[483,1093,1095],{"className":485,"code":1094,"language":487,"meta":488,"style":488},"var ErrOutOfStock = errs.Define(\"out_of_stock\",\n    errs.Public(\"A termék elfogyott.\"),\n    errs.Status(http.StatusConflict))\n\nerr := ErrOutOfStock.New(\"orders: decrement stock\", errs.With(\"product_id\", \"prod_42\"))\n",[459,1096,1097,1126,1148,1169,1173],{"__ignoreMap":488},[492,1098,1099,1102,1105,1108,1110,1112,1114,1116,1118,1121,1123],{"class":494,"line":495},[492,1100,1101],{"class":502},"var",[492,1103,1104],{"class":784}," ErrOutOfStock ",[492,1106,1107],{"class":502},"=",[492,1109,829],{"class":784},[492,1111,794],{"class":502},[492,1113,464],{"class":528},[492,1115,532],{"class":502},[492,1117,848],{"class":502},[492,1119,1120],{"class":844},"out_of_stock",[492,1122,848],{"class":502},[492,1124,1125],{"class":502},",\n",[492,1127,1128,1131,1133,1136,1138,1140,1143,1145],{"class":494,"line":564},[492,1129,1130],{"class":784},"    errs",[492,1132,794],{"class":502},[492,1134,1135],{"class":528},"Public",[492,1137,532],{"class":502},[492,1139,848],{"class":502},[492,1141,1142],{"class":844},"A termék elfogyott.",[492,1144,848],{"class":502},[492,1146,1147],{"class":502},"),\n",[492,1149,1150,1152,1154,1157,1159,1162,1164,1167],{"class":494,"line":595},[492,1151,1130],{"class":784},[492,1153,794],{"class":502},[492,1155,1156],{"class":528},"Status",[492,1158,532],{"class":502},[492,1160,1161],{"class":784},"http",[492,1163,794],{"class":502},[492,1165,1166],{"class":784},"StatusConflict",[492,1168,878],{"class":502},[492,1170,1171],{"class":494,"line":632},[492,1172,889],{"emptyLinePlaceholder":888},[492,1174,1175,1178,1180,1183,1185,1187,1189,1191,1194,1196,1198,1200,1202,1204,1206,1208,1211,1213,1215,1217,1220,1222],{"class":494,"line":667},[492,1176,1177],{"class":784},"err ",[492,1179,788],{"class":502},[492,1181,1182],{"class":784}," ErrOutOfStock",[492,1184,794],{"class":502},[492,1186,706],{"class":528},[492,1188,532],{"class":502},[492,1190,848],{"class":502},[492,1192,1193],{"class":844},"orders: decrement stock",[492,1195,848],{"class":502},[492,1197,543],{"class":502},[492,1199,829],{"class":784},[492,1201,794],{"class":502},[492,1203,857],{"class":528},[492,1205,532],{"class":502},[492,1207,848],{"class":502},[492,1209,1210],{"class":844},"product_id",[492,1212,848],{"class":502},[492,1214,543],{"class":502},[492,1216,503],{"class":502},[492,1218,1219],{"class":844},"prod_42",[492,1221,848],{"class":502},[492,1223,878],{"class":502},[455,1225,1226,1227,1230,1231,1233,1234,1236,1237,1239,1240,1242],{},"A ",[459,1228,1229],{},"Code",", a ",[459,1232,1135],{}," és a ",[459,1235,1156],{}," jellemzően egyszer van beállítva, egy ",[459,1238,464],{},"-olt definitionön; a ",[459,1241,857],{}," az egyetlen attribútum, amihez minden egyes wrap-helyen nyúlsz, hogy az adott híváshoz tartozó metadata-t (egy ID-t, egy darabszámot, egy query-nevet) rögzítsd.",[512,1244,1246],{"id":1245},"accessorok","Accessorok",[483,1248,1250],{"className":485,"code":1249,"language":487,"meta":488,"style":488},"func CodeOf(err error) string\nfunc PublicOf(err error) string\nfunc StatusOf(err error) int\n",[459,1251,1252,1270,1287],{"__ignoreMap":488},[492,1253,1254,1256,1259,1261,1263,1265,1267],{"class":494,"line":495},[492,1255,525],{"class":502},[492,1257,1258],{"class":528}," CodeOf",[492,1260,532],{"class":502},[492,1262,605],{"class":535},[492,1264,608],{"class":539},[492,1266,555],{"class":502},[492,1268,1269],{"class":539}," string\n",[492,1271,1272,1274,1277,1279,1281,1283,1285],{"class":494,"line":564},[492,1273,525],{"class":502},[492,1275,1276],{"class":528}," PublicOf",[492,1278,532],{"class":502},[492,1280,605],{"class":535},[492,1282,608],{"class":539},[492,1284,555],{"class":502},[492,1286,1269],{"class":539},[492,1288,1289,1291,1294,1296,1298,1300,1302],{"class":494,"line":595},[492,1290,525],{"class":502},[492,1292,1293],{"class":528}," StatusOf",[492,1295,532],{"class":502},[492,1297,605],{"class":535},[492,1299,608],{"class":539},[492,1301,555],{"class":502},[492,1303,1304],{"class":539}," int\n",[455,1306,1307,1308,1310,1311,1313,1314,1316,1317,718,1320,1323],{},"Mindegyik végigmegy a hiba-láncon (az ",[459,1309,472],{},"-en keresztül), keresve az első ",[459,1312,476],{},"-t, ami beállította a megfelelő attribútumot, így ugyanúgy működik, akár magát az ",[459,1315,476],{},"-t adod át, akár valamit, ami feljebb wrappeli. A ",[459,1318,1319],{},"StatusOf",[459,1321,1322],{},"0","-t ad vissza, ha semmi a láncban nem állított státuszt, így egy renderelő explicit eshet vissza 500-ra, találgatás helyett.",[512,1325,1327],{"id":1326},"introspekció-frames-fullframes-chain","Introspekció: Frames, FullFrames, Chain",[483,1329,1331],{"className":485,"code":1330,"language":487,"meta":488,"style":488},"type Frame struct {\n    File     string\n    Line     int\n    Function string\n}\n\ntype Step struct {\n    Msg      string\n    File     string\n    Line     int\n    Function string\n    Code     string\n    Meta     map[string]any\n}\n\nfunc Frames(err error) []Frame     \u002F\u002F a keletkezés pontjában capture-ölt stack\nfunc FullFrames(err error) []Frame \u002F\u002F a Frames, plusz a közbeeső, nem wrappelő hívási frame-ek\nfunc Chain(err error) []Step       \u002F\u002F egy Step wrap-szintenként, a root cause utoljára\n",[459,1332,1333,1345,1353,1361,1368,1372,1376,1387,1395,1402,1409,1416,1424,1442,1447,1452,1477,1500],{"__ignoreMap":488},[492,1334,1335,1337,1340,1343],{"class":494,"line":495},[492,1336,986],{"class":502},[492,1338,1339],{"class":506}," Frame",[492,1341,1342],{"class":502}," struct",[492,1344,821],{"class":502},[492,1346,1347,1350],{"class":494,"line":564},[492,1348,1349],{"class":784},"    File     ",[492,1351,1352],{"class":539},"string\n",[492,1354,1355,1358],{"class":494,"line":595},[492,1356,1357],{"class":784},"    Line     ",[492,1359,1360],{"class":539},"int\n",[492,1362,1363,1366],{"class":494,"line":632},[492,1364,1365],{"class":784},"    Function ",[492,1367,1352],{"class":539},[492,1369,1370],{"class":494,"line":667},[492,1371,883],{"class":502},[492,1373,1374],{"class":494,"line":918},[492,1375,889],{"emptyLinePlaceholder":888},[492,1377,1378,1380,1383,1385],{"class":494,"line":961},[492,1379,986],{"class":502},[492,1381,1382],{"class":506}," Step",[492,1384,1342],{"class":502},[492,1386,821],{"class":502},[492,1388,1390,1393],{"class":494,"line":1389},8,[492,1391,1392],{"class":784},"    Msg      ",[492,1394,1352],{"class":539},[492,1396,1398,1400],{"class":494,"line":1397},9,[492,1399,1349],{"class":784},[492,1401,1352],{"class":539},[492,1403,1405,1407],{"class":494,"line":1404},10,[492,1406,1357],{"class":784},[492,1408,1360],{"class":539},[492,1410,1412,1414],{"class":494,"line":1411},11,[492,1413,1365],{"class":784},[492,1415,1352],{"class":539},[492,1417,1419,1422],{"class":494,"line":1418},12,[492,1420,1421],{"class":784},"    Code     ",[492,1423,1352],{"class":539},[492,1425,1427,1430,1433,1436,1439],{"class":494,"line":1426},13,[492,1428,1429],{"class":784},"    Meta     ",[492,1431,1432],{"class":502},"map[",[492,1434,1435],{"class":539},"string",[492,1437,1438],{"class":502},"]",[492,1440,1441],{"class":506},"any\n",[492,1443,1445],{"class":494,"line":1444},14,[492,1446,883],{"class":502},[492,1448,1450],{"class":494,"line":1449},15,[492,1451,889],{"emptyLinePlaceholder":888},[492,1453,1455,1457,1460,1462,1464,1466,1468,1471,1474],{"class":494,"line":1454},16,[492,1456,525],{"class":502},[492,1458,1459],{"class":528}," Frames",[492,1461,532],{"class":502},[492,1463,605],{"class":535},[492,1465,608],{"class":539},[492,1467,555],{"class":502},[492,1469,1470],{"class":502}," []",[492,1472,1473],{"class":506},"Frame",[492,1475,1476],{"class":1021},"     \u002F\u002F a keletkezés pontjában capture-ölt stack\n",[492,1478,1480,1482,1485,1487,1489,1491,1493,1495,1497],{"class":494,"line":1479},17,[492,1481,525],{"class":502},[492,1483,1484],{"class":528}," FullFrames",[492,1486,532],{"class":502},[492,1488,605],{"class":535},[492,1490,608],{"class":539},[492,1492,555],{"class":502},[492,1494,1470],{"class":502},[492,1496,1473],{"class":506},[492,1498,1499],{"class":1021}," \u002F\u002F a Frames, plusz a közbeeső, nem wrappelő hívási frame-ek\n",[492,1501,1503,1505,1508,1510,1512,1514,1516,1518,1521],{"class":494,"line":1502},18,[492,1504,525],{"class":502},[492,1506,1507],{"class":528}," Chain",[492,1509,532],{"class":502},[492,1511,605],{"class":535},[492,1513,608],{"class":539},[492,1515,555],{"class":502},[492,1517,1470],{"class":502},[492,1519,1520],{"class":506},"Step",[492,1522,1523],{"class":1021},"       \u002F\u002F egy Step wrap-szintenként, a root cause utoljára\n",[455,1525,1226,1526,1529,1530,1532,1533,1535,1536,1538,1539,1542,1543,1546,1547,1549,1550,469,1552,1554,1555,469,1557,1559,1560,1233,1564,1567],{},[459,1527,1528],{},"Frames"," a hívási stack abban a pillanatban, amikor a hiba először létrejött (",[459,1531,706],{},", ",[459,1534,714],{}," vagy a láncban az első ",[459,1537,729],{},"); a ",[459,1540,1541],{},"FullFrames"," ezen felül a közönséges, a hibát sem nem létrehozó, sem nem wrappelő függvényhívások frame-jeit is tartalmazza, megadva a teljes hívási utat. A ",[459,1544,1545],{},"Chain"," a wrap-történet: egy ",[459,1548,1520],{}," minden ",[459,1551,729],{},[459,1553,753],{}," híváshoz, a saját üzenetével, a wrap helyével és azzal, amit ott ",[459,1556,857],{},[459,1558,1229],{},"-dal rögzítettek, a legbelső okkal a végén. Ez a három függvény az, amiből a ",[479,1561,1563],{"href":1562},"\u002Fhu\u002Ferrs\u002Fintegration#log-kimenet","logolás",[479,1565,445],{"href":1566},"\u002Fhu\u002Ferrs\u002Fintegration#sentry"," a strukturált kimenetét építi; ezeken kívül ritkán hívod közvetlenül.",[512,1569,1571],{"id":1570},"stack-szemantika-capture-a-keletkezéskor","Stack-szemantika: capture a keletkezéskor",[455,1573,1574,1575,1578,1579,469,1581,1583,1584,469,1586,1588,1589,1591,1592,1595,1596,1598,1599,1601,1602,1604],{},"A stack trace ",[702,1576,1577],{},"egyszer"," capture-ölődik, a ",[459,1580,706],{},[459,1582,714],{},"\u002Felső-",[459,1585,729],{},[459,1587,763],{}," hívásnál, ami az ",[459,1590,476],{},"-t létrehozza, ",[459,1593,1594],{},"runtime.Callers","-szel. A későbbi ",[459,1597,729],{}," hívások ugyanazon a hibán egy ",[459,1600,1520],{},"-et adnak a lánchoz, de nem capture-ölik újra a stacket: a stack mindig a keletkezés pontjára mutat, nem arra a hívási helyre, ami épp logolja. Ez a gyakorlatban számít: ha a stacket akkor capture-öznéd, amikor logolsz, nem amikor létrehozod a hibát, egy mélyen wrappelt hiba mindig a logoló hívásra mutatna, ugyanarra a sorra, függetlenül attól, hogy a hiba ténylegesen hol kezdődött. A keletkezéskori capture azt jelenti, hogy a stack pont akkor értelmes, amikor számít, és ingyenes minden más alkalommal, amikor a hibát továbbadják, wrappelik vagy ",[459,1603,468],{},"-szel ellenőrzik.",[512,1606,1608],{"id":1607},"errsdefine-elnevezett-hibamódok","errs.Define: elnevezett hibamódok",[483,1610,1612],{"className":485,"code":1611,"language":487,"meta":488,"style":488},"type Definition struct { \u002F* ... *\u002F }\n\nfunc Define(code string, attrs ...Attr) *Definition\n\nfunc (d *Definition) New(msg string, attrs ...Attr) *Error\nfunc (d *Definition) Newf(format string, args ...any) *Error\nfunc (d *Definition) Wrap(err error, msg string, attrs ...Attr) *Error\nfunc (d *Definition) Wrapf(err error, format string, args ...any) *Error\n",[459,1613,1614,1632,1636,1664,1668,1708,1745,1787],{"__ignoreMap":488},[492,1615,1616,1618,1621,1623,1626,1629],{"class":494,"line":495},[492,1617,986],{"class":502},[492,1619,1620],{"class":506}," Definition",[492,1622,1342],{"class":502},[492,1624,1625],{"class":502}," {",[492,1627,1628],{"class":1021}," \u002F* ... *\u002F",[492,1630,1631],{"class":502}," }\n",[492,1633,1634],{"class":494,"line":564},[492,1635,889],{"emptyLinePlaceholder":888},[492,1637,1638,1640,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661],{"class":494,"line":595},[492,1639,525],{"class":502},[492,1641,1642],{"class":528}," Define",[492,1644,532],{"class":502},[492,1646,459],{"class":535},[492,1648,540],{"class":539},[492,1650,543],{"class":502},[492,1652,546],{"class":535},[492,1654,549],{"class":502},[492,1656,552],{"class":506},[492,1658,555],{"class":502},[492,1660,558],{"class":502},[492,1662,1663],{"class":506},"Definition\n",[492,1665,1666],{"class":494,"line":632},[492,1667,889],{"emptyLinePlaceholder":888},[492,1669,1670,1672,1675,1678,1681,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706],{"class":494,"line":667},[492,1671,525],{"class":502},[492,1673,1674],{"class":502}," (",[492,1676,1677],{"class":535},"d ",[492,1679,1680],{"class":502},"*",[492,1682,1683],{"class":506},"Definition",[492,1685,555],{"class":502},[492,1687,529],{"class":528},[492,1689,532],{"class":502},[492,1691,536],{"class":535},[492,1693,540],{"class":539},[492,1695,543],{"class":502},[492,1697,546],{"class":535},[492,1699,549],{"class":502},[492,1701,552],{"class":506},[492,1703,555],{"class":502},[492,1705,558],{"class":502},[492,1707,561],{"class":506},[492,1709,1710,1712,1714,1716,1718,1720,1722,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743],{"class":494,"line":918},[492,1711,525],{"class":502},[492,1713,1674],{"class":502},[492,1715,1677],{"class":535},[492,1717,1680],{"class":502},[492,1719,1683],{"class":506},[492,1721,555],{"class":502},[492,1723,1724],{"class":528}," Newf",[492,1726,532],{"class":502},[492,1728,574],{"class":535},[492,1730,540],{"class":539},[492,1732,543],{"class":502},[492,1734,581],{"class":535},[492,1736,549],{"class":502},[492,1738,586],{"class":506},[492,1740,555],{"class":502},[492,1742,558],{"class":502},[492,1744,561],{"class":506},[492,1746,1747,1749,1751,1753,1755,1757,1759,1761,1763,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1785],{"class":494,"line":961},[492,1748,525],{"class":502},[492,1750,1674],{"class":502},[492,1752,1677],{"class":535},[492,1754,1680],{"class":502},[492,1756,1683],{"class":506},[492,1758,555],{"class":502},[492,1760,600],{"class":528},[492,1762,532],{"class":502},[492,1764,605],{"class":535},[492,1766,608],{"class":539},[492,1768,543],{"class":502},[492,1770,613],{"class":535},[492,1772,540],{"class":539},[492,1774,543],{"class":502},[492,1776,546],{"class":535},[492,1778,549],{"class":502},[492,1780,552],{"class":506},[492,1782,555],{"class":502},[492,1784,558],{"class":502},[492,1786,561],{"class":506},[492,1788,1789,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813,1815,1817,1819,1821,1823,1825,1827],{"class":494,"line":1389},[492,1790,525],{"class":502},[492,1792,1674],{"class":502},[492,1794,1677],{"class":535},[492,1796,1680],{"class":502},[492,1798,1683],{"class":506},[492,1800,555],{"class":502},[492,1802,637],{"class":528},[492,1804,532],{"class":502},[492,1806,605],{"class":535},[492,1808,608],{"class":539},[492,1810,543],{"class":502},[492,1812,648],{"class":535},[492,1814,540],{"class":539},[492,1816,543],{"class":502},[492,1818,581],{"class":535},[492,1820,549],{"class":502},[492,1822,586],{"class":506},[492,1824,555],{"class":502},[492,1826,558],{"class":502},[492,1828,561],{"class":506},[455,1830,1226,1831,1833,1834,1836,1837,1840,1841,1843,1844,1847],{},[459,1832,464],{}," egyszer deklarál egy újrahasználható hibamódot, csomagszintű ",[459,1835,1101],{},"-ként, ugyanúgy, ahogy egy sentinel hibát deklarálnál ",[459,1838,1839],{},"errors.New","-val. Megköveteli egy ",[459,1842,1156],{}," attribútum beállítását egy érvényes 4xx vagy 5xx HTTP státuszkóddal, és ",[702,1845,1846],{},"panicol init-időben",", ha ez hiányzik vagy tartományon kívüli:",[483,1849,1851],{"className":485,"code":1850,"language":487,"meta":488,"style":488},"var ErrOutOfStock = errs.Define(\"out_of_stock\",\n    errs.Public(\"A termék elfogyott.\"),\n    errs.Status(http.StatusConflict)) \u002F\u002F kötelező, különben a Define panicol\n",[459,1852,1853,1877,1895],{"__ignoreMap":488},[492,1854,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875],{"class":494,"line":495},[492,1856,1101],{"class":502},[492,1858,1104],{"class":784},[492,1860,1107],{"class":502},[492,1862,829],{"class":784},[492,1864,794],{"class":502},[492,1866,464],{"class":528},[492,1868,532],{"class":502},[492,1870,848],{"class":502},[492,1872,1120],{"class":844},[492,1874,848],{"class":502},[492,1876,1125],{"class":502},[492,1878,1879,1881,1883,1885,1887,1889,1891,1893],{"class":494,"line":564},[492,1880,1130],{"class":784},[492,1882,794],{"class":502},[492,1884,1135],{"class":528},[492,1886,532],{"class":502},[492,1888,848],{"class":502},[492,1890,1142],{"class":844},[492,1892,848],{"class":502},[492,1894,1147],{"class":502},[492,1896,1897,1899,1901,1903,1905,1907,1909,1911,1914],{"class":494,"line":595},[492,1898,1130],{"class":784},[492,1900,794],{"class":502},[492,1902,1156],{"class":528},[492,1904,532],{"class":502},[492,1906,1161],{"class":784},[492,1908,794],{"class":502},[492,1910,1166],{"class":784},[492,1912,1913],{"class":502},"))",[492,1915,1916],{"class":1021}," \u002F\u002F kötelező, különben a Define panicol\n",[455,1918,1919,1920,1922,1923,1925,1926,1929,1930,1933,1934,469,1937,1940,1941,1944,1945,469,1947,469,1950,469,1952,1955,1956,1958],{},"Ez az init-időben panicoló viselkedés azért van, mert egy ",[459,1921,1683],{}," érvényes státusz nélkül olyan kontraktus, amit senki nem tud biztonságosan renderelni, és a hibát a bináris indulásának pillanatában kell elkapni, nem az első kérésen, ami épp átfut rajta. Egy ",[459,1924,1683],{}," értéke ",[702,1927,1928],{},"maga"," a sentinel: az ",[459,1931,1932],{},"errors.Is(err, ErrOutOfStock)"," közvetlenül működik ellene, mert minden hiba, amit a ",[459,1935,1936],{},".New",[459,1938,1939],{},".Wrap"," belőle gyárt, saját ",[459,1942,1943],{},"Is","-t hordoz, ami a definitionre illeszkedik. A ",[459,1946,1936],{},[459,1948,1949],{},".Newf",[459,1951,1939],{},[459,1953,1954],{},".Wrapf"," a csomagszintű konstruktorokat tükrözi, előre feltöltve a definition kódjával, publikus üzenetével és státuszával, így az ",[459,1957,1120],{}," minden előfordulása a kódbázisban azonosan renderelődik, anélkül hogy ezt a három attribútumot minden hívási helyen meg kellene ismételni.",[512,1960,1962],{"id":1961},"önálló-példa","Önálló példa",[483,1964,1967],{"className":485,"code":1965,"filename":1966,"language":487,"meta":488,"style":488},"package main\n\nimport (\n    \"errors\"\n    \"fmt\"\n    \"net\u002Fhttp\"\n\n    \"github.com\u002Fgp-system\u002Ferrs\"\n)\n\nvar ErrNotFound = errs.Define(\"not_found\",\n    errs.Public(\"A keresett elem nem létezik.\"),\n    errs.Status(http.StatusNotFound))\n\nfunc lookup(id string) (string, error) {\n    if id != \"known\" {\n        return \"\", ErrNotFound.New(\"lookup\", errs.With(\"id\", id))\n    }\n    return \"value\", nil\n}\n\nfunc main() {\n    _, err := lookup(\"missing\")\n\n    fmt.Println(errors.Is(err, ErrNotFound)) \u002F\u002F true\n    fmt.Println(errs.CodeOf(err))            \u002F\u002F \"not_found\"\n    fmt.Println(errs.StatusOf(err))          \u002F\u002F 404\n    fmt.Println(errs.PublicOf(err))          \u002F\u002F \"A keresett elem nem létezik.\"\n\n    for _, step := range errs.Chain(err) {\n        fmt.Printf(\"%s (%s:%d)\\n\", step.Msg, step.File, step.Line)\n    }\n}\n","main.go",[459,1968,1969,1977,1981,1988,1998,2007,2016,2020,2028,2032,2036,2062,2081,2100,2104,2132,2151,2200,2205,2222,2227,2232,2245,2270,2275,2307,2334,2360,2387,2392,2425,2489,2494],{"__ignoreMap":488},[492,1970,1971,1974],{"class":494,"line":495},[492,1972,1973],{"class":502},"package",[492,1975,1976],{"class":506}," main\n",[492,1978,1979],{"class":494,"line":564},[492,1980,889],{"emptyLinePlaceholder":888},[492,1982,1983,1985],{"class":494,"line":595},[492,1984,499],{"class":498},[492,1986,1987],{"class":502}," (\n",[492,1989,1990,1993,1996],{"class":494,"line":632},[492,1991,1992],{"class":502},"    \"",[492,1994,1995],{"class":506},"errors",[492,1997,510],{"class":502},[492,1999,2000,2002,2005],{"class":494,"line":667},[492,2001,1992],{"class":502},[492,2003,2004],{"class":506},"fmt",[492,2006,510],{"class":502},[492,2008,2009,2011,2014],{"class":494,"line":918},[492,2010,1992],{"class":502},[492,2012,2013],{"class":506},"net\u002Fhttp",[492,2015,510],{"class":502},[492,2017,2018],{"class":494,"line":961},[492,2019,889],{"emptyLinePlaceholder":888},[492,2021,2022,2024,2026],{"class":494,"line":1389},[492,2023,1992],{"class":502},[492,2025,507],{"class":506},[492,2027,510],{"class":502},[492,2029,2030],{"class":494,"line":1397},[492,2031,958],{"class":502},[492,2033,2034],{"class":494,"line":1404},[492,2035,889],{"emptyLinePlaceholder":888},[492,2037,2038,2040,2043,2045,2047,2049,2051,2053,2055,2058,2060],{"class":494,"line":1411},[492,2039,1101],{"class":502},[492,2041,2042],{"class":784}," ErrNotFound ",[492,2044,1107],{"class":502},[492,2046,829],{"class":784},[492,2048,794],{"class":502},[492,2050,464],{"class":528},[492,2052,532],{"class":502},[492,2054,848],{"class":502},[492,2056,2057],{"class":844},"not_found",[492,2059,848],{"class":502},[492,2061,1125],{"class":502},[492,2063,2064,2066,2068,2070,2072,2074,2077,2079],{"class":494,"line":1418},[492,2065,1130],{"class":784},[492,2067,794],{"class":502},[492,2069,1135],{"class":528},[492,2071,532],{"class":502},[492,2073,848],{"class":502},[492,2075,2076],{"class":844},"A keresett elem nem létezik.",[492,2078,848],{"class":502},[492,2080,1147],{"class":502},[492,2082,2083,2085,2087,2089,2091,2093,2095,2098],{"class":494,"line":1426},[492,2084,1130],{"class":784},[492,2086,794],{"class":502},[492,2088,1156],{"class":528},[492,2090,532],{"class":502},[492,2092,1161],{"class":784},[492,2094,794],{"class":502},[492,2096,2097],{"class":784},"StatusNotFound",[492,2099,878],{"class":502},[492,2101,2102],{"class":494,"line":1444},[492,2103,889],{"emptyLinePlaceholder":888},[492,2105,2106,2108,2111,2113,2116,2118,2120,2122,2124,2126,2128,2130],{"class":494,"line":1449},[492,2107,525],{"class":502},[492,2109,2110],{"class":528}," lookup",[492,2112,532],{"class":502},[492,2114,2115],{"class":535},"id",[492,2117,540],{"class":539},[492,2119,555],{"class":502},[492,2121,1674],{"class":502},[492,2123,1435],{"class":539},[492,2125,543],{"class":502},[492,2127,608],{"class":539},[492,2129,555],{"class":502},[492,2131,821],{"class":502},[492,2133,2134,2137,2140,2142,2144,2147,2149],{"class":494,"line":1454},[492,2135,2136],{"class":498},"    if",[492,2138,2139],{"class":784}," id ",[492,2141,815],{"class":502},[492,2143,503],{"class":502},[492,2145,2146],{"class":844},"known",[492,2148,848],{"class":502},[492,2150,821],{"class":502},[492,2152,2153,2156,2159,2161,2164,2166,2168,2170,2172,2175,2177,2179,2181,2183,2185,2187,2189,2191,2193,2195,2198],{"class":494,"line":1479},[492,2154,2155],{"class":498},"        return",[492,2157,2158],{"class":502}," \"\"",[492,2160,543],{"class":502},[492,2162,2163],{"class":784}," ErrNotFound",[492,2165,794],{"class":502},[492,2167,706],{"class":528},[492,2169,532],{"class":502},[492,2171,848],{"class":502},[492,2173,2174],{"class":844},"lookup",[492,2176,848],{"class":502},[492,2178,543],{"class":502},[492,2180,829],{"class":784},[492,2182,794],{"class":502},[492,2184,857],{"class":528},[492,2186,532],{"class":502},[492,2188,848],{"class":502},[492,2190,2115],{"class":844},[492,2192,848],{"class":502},[492,2194,543],{"class":502},[492,2196,2197],{"class":784}," id",[492,2199,878],{"class":502},[492,2201,2202],{"class":494,"line":1502},[492,2203,2204],{"class":502},"    }\n",[492,2206,2208,2210,2212,2215,2217,2219],{"class":494,"line":2207},19,[492,2209,826],{"class":498},[492,2211,503],{"class":502},[492,2213,2214],{"class":844},"value",[492,2216,848],{"class":502},[492,2218,543],{"class":502},[492,2220,2221],{"class":502}," nil\n",[492,2223,2225],{"class":494,"line":2224},20,[492,2226,883],{"class":502},[492,2228,2230],{"class":494,"line":2229},21,[492,2231,889],{"emptyLinePlaceholder":888},[492,2233,2235,2237,2240,2243],{"class":494,"line":2234},22,[492,2236,525],{"class":502},[492,2238,2239],{"class":528}," main",[492,2241,2242],{"class":502},"()",[492,2244,821],{"class":502},[492,2246,2248,2251,2253,2255,2257,2259,2261,2263,2266,2268],{"class":494,"line":2247},23,[492,2249,2250],{"class":784},"    _",[492,2252,543],{"class":502},[492,2254,785],{"class":784},[492,2256,788],{"class":502},[492,2258,2110],{"class":528},[492,2260,532],{"class":502},[492,2262,848],{"class":502},[492,2264,2265],{"class":844},"missing",[492,2267,848],{"class":502},[492,2269,958],{"class":502},[492,2271,2273],{"class":494,"line":2272},24,[492,2274,889],{"emptyLinePlaceholder":888},[492,2276,2278,2281,2283,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304],{"class":494,"line":2277},25,[492,2279,2280],{"class":784},"    fmt",[492,2282,794],{"class":502},[492,2284,2285],{"class":528},"Println",[492,2287,532],{"class":502},[492,2289,1995],{"class":784},[492,2291,794],{"class":502},[492,2293,1943],{"class":528},[492,2295,532],{"class":502},[492,2297,605],{"class":784},[492,2299,543],{"class":502},[492,2301,2163],{"class":784},[492,2303,1913],{"class":502},[492,2305,2306],{"class":1021}," \u002F\u002F true\n",[492,2308,2310,2312,2314,2316,2318,2320,2322,2325,2327,2329,2331],{"class":494,"line":2309},26,[492,2311,2280],{"class":784},[492,2313,794],{"class":502},[492,2315,2285],{"class":528},[492,2317,532],{"class":502},[492,2319,273],{"class":784},[492,2321,794],{"class":502},[492,2323,2324],{"class":528},"CodeOf",[492,2326,532],{"class":502},[492,2328,605],{"class":784},[492,2330,1913],{"class":502},[492,2332,2333],{"class":1021},"            \u002F\u002F \"not_found\"\n",[492,2335,2337,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357],{"class":494,"line":2336},27,[492,2338,2280],{"class":784},[492,2340,794],{"class":502},[492,2342,2285],{"class":528},[492,2344,532],{"class":502},[492,2346,273],{"class":784},[492,2348,794],{"class":502},[492,2350,1319],{"class":528},[492,2352,532],{"class":502},[492,2354,605],{"class":784},[492,2356,1913],{"class":502},[492,2358,2359],{"class":1021},"          \u002F\u002F 404\n",[492,2361,2363,2365,2367,2369,2371,2373,2375,2378,2380,2382,2384],{"class":494,"line":2362},28,[492,2364,2280],{"class":784},[492,2366,794],{"class":502},[492,2368,2285],{"class":528},[492,2370,532],{"class":502},[492,2372,273],{"class":784},[492,2374,794],{"class":502},[492,2376,2377],{"class":528},"PublicOf",[492,2379,532],{"class":502},[492,2381,605],{"class":784},[492,2383,1913],{"class":502},[492,2385,2386],{"class":1021},"          \u002F\u002F \"A keresett elem nem létezik.\"\n",[492,2388,2390],{"class":494,"line":2389},29,[492,2391,889],{"emptyLinePlaceholder":888},[492,2393,2395,2398,2401,2403,2406,2408,2411,2413,2415,2417,2419,2421,2423],{"class":494,"line":2394},30,[492,2396,2397],{"class":498},"    for",[492,2399,2400],{"class":784}," _",[492,2402,543],{"class":502},[492,2404,2405],{"class":784}," step ",[492,2407,788],{"class":502},[492,2409,2410],{"class":498}," range",[492,2412,829],{"class":784},[492,2414,794],{"class":502},[492,2416,1545],{"class":528},[492,2418,532],{"class":502},[492,2420,605],{"class":784},[492,2422,555],{"class":502},[492,2424,821],{"class":502},[492,2426,2428,2431,2433,2436,2438,2440,2443,2445,2447,2450,2452,2454,2457,2459,2461,2464,2466,2469,2471,2473,2475,2478,2480,2482,2484,2487],{"class":494,"line":2427},31,[492,2429,2430],{"class":784},"        fmt",[492,2432,794],{"class":502},[492,2434,2435],{"class":528},"Printf",[492,2437,532],{"class":502},[492,2439,848],{"class":502},[492,2441,2442],{"class":936},"%s",[492,2444,1674],{"class":844},[492,2446,2442],{"class":936},[492,2448,2449],{"class":844},":",[492,2451,937],{"class":936},[492,2453,555],{"class":844},[492,2455,2456],{"class":784},"\\n",[492,2458,848],{"class":502},[492,2460,543],{"class":502},[492,2462,2463],{"class":784}," step",[492,2465,794],{"class":502},[492,2467,2468],{"class":784},"Msg",[492,2470,543],{"class":502},[492,2472,2463],{"class":784},[492,2474,794],{"class":502},[492,2476,2477],{"class":784},"File",[492,2479,543],{"class":502},[492,2481,2463],{"class":784},[492,2483,794],{"class":502},[492,2485,2486],{"class":784},"Line",[492,2488,958],{"class":502},[492,2490,2492],{"class":494,"line":2491},32,[492,2493,2204],{"class":502},[492,2495,2497],{"class":494,"line":2496},33,[492,2498,883],{"class":502},[512,2500,2502],{"id":2501},"kapcsolódó-oldalak","Kapcsolódó oldalak",[696,2504,2505,2511,2524,2529],{},[699,2506,2507,2510],{},[479,2508,2509],{"href":278},"errs: Áttekintés",": telepítés, a kétüzenetes tervezés.",[699,2512,2513,940,2516,2519,2520,2523],{},[479,2514,2515],{"href":286},"errs: Integráció",[459,2517,2518],{},"LogValue",", a Sentry ",[459,2521,2522],{},"StackTrace()","-e, és egy minimális HTTP mapper.",[699,2525,2526,2528],{},[479,2527,186],{"href":187},": a teljes kérés-válasz pipeline, amit ez az API táplál.",[699,2530,2531,2534,2535,2537],{},[479,2532,2533],{"href":315},"httperr: Áttekintés",": az ",[459,2536,273],{}," hibák RFC 9457 válaszokká renderelése.",[2539,2540,2541],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":488,"searchDepth":564,"depth":564,"links":2543},[2544,2545,2546,2547,2548,2549,2550,2551],{"id":514,"depth":564,"text":515},{"id":966,"depth":564,"text":967},{"id":1245,"depth":564,"text":1246},{"id":1326,"depth":564,"text":1327},{"id":1570,"depth":564,"text":1571},{"id":1607,"depth":564,"text":1608},{"id":1961,"depth":564,"text":1962},{"id":2501,"depth":564,"text":2502},"Az errs csomag API-ja: New, Wrap, Define, attribútumok és accessorok.","md",null,{},{"icon":189},{"title":281,"description":2552},"43PWd6DZEu3bKbAGLHFzZOWc11ZitTLoN0r_7UoFlsY",[2560,2562],{"title":52,"path":278,"stem":279,"description":2561,"icon":189,"children":-1},"Strukturált Go hibák stackkel, kóddal és kliensbiztos üzenettel.",{"title":285,"path":286,"stem":287,"description":2563,"icon":189,"children":-1},"Az errs bedrótozása logolásba, Sentrybe és sima net\u002Fhttp handlerekbe.",1787346804919]