Files
boc/aamos-ledger-rust/target/debug/deps/libhyper-c53a7b40397912e4.rmeta
T

2625 lines
703 KiB
Plaintext
Raw Normal View History

rust
#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁhttpÁz"fL†ØÞÄ_°¢_ qÛ-e48ab040bc3ddb47ÁbytesÁ`²['3_²µÆ=üå¥-d4f44708ed5da7b6ÁitoaÁrLpèòÐ
ݽ‚AéGT'-7ba5a7b63f68a66bÁ http_bodyÁÙè!" )I
lŽà‚ÝFŬ-5ba25dbd9e9a894eÁfutures_channelÁùÆ}5
œ¼ÐýMŠì-0197ea18278db65dÁ futures_coreÁÆöc$޳–º¾v¸dK-ac1e9cdb826f83c0Á futures_sinkÁ‰ð{Þý’ç KÛÉÔrë-be912d576bc746f9ÁhttpdateÁ;­§{"Û[–Ÿ\1-d7b45e2beb120d7bÁ atomic_wakerÁ›d¥µ§ŒÀv­A|ØfüŒ-2433aa5dc1ef41d0ÁtokioÁJ;Ì3<þÝñŠ7_ú-081d57d1ceb823d6Ápin_project_liteÁ·x¼+Ä`·á¨›t—¸Íœ-2dc344ecc91b59efÁ parking_lotÁâ°r4¨6ª(ü²Hd©n¼-21962aa896c8619bÁlock_apiÁEcÓŽ/ÅS}sw‡A$P-0e8055cd433fa267Á
scopeguardÁ’‰‘p ÒÞa¢ßöéqÓB-29f0bdb2ea82739eÁparking_lot_coreÁ’Ý%Ž=Eq^U4FOV)àŸ-e1ee0517e8b9a4bfÁsmallvecÁ[“S‰«2ûÓàÁ3™ËºS-fa382cf08413422fÁserdeÁFVæ¸Û•IÄÀzÍ-9c8ce3cf08540cc3Á serde_deriveÁ,w|êñ]ù¿¥­C£ð-975c43f96d83014eÁ
serde_coreÁ²€Ãb˜cÐòžÇÇ
-7a42419d8e43b208Á®f©¾/ô)c§{õa“â‘-a3906971a93fd1b8Áæ\‹±ÔcdùÀTƒ-f86f80b348d33b13ÁmioÁGùj0ðÔ·â"FÆ#0Q-3545320490828222Á tokio_macrosÁóÁm¹^E¼>ŽCê
z3-074a4ab5bbda1a72Ásocket2ÁsT›¸n>~RÊ1G/R-c161f09f0083d1e0Ásignal_hook_registryÁœ¥¿’g›´·DV<{Y<<-b3ea108dcb9d0adeÁerrnoÁÍ\Ý|#{°zŽ¡p&a”-464950f23d45b34dÁhttparseÁ߃ŒÍŸEe]¶ä~áûj-8f58ef67b1a94dc0Á)pingÁ$Ÿ»http2ÁŒÇ)testsÁ,~$~l··,‡ HeaderValueÁ\£»¨Œ}update_and_header_valueÁ¼æ»¨ŒÄ·ƒeitherÁ4‚»”ÊÐcompatÁ4P»¨Œ7Ñ·,–$ÐCompatÁ4λ¨Œœ÷RawWakerÁDK»”&÷RawWakerVTableÁtU»#WakerÁ,e»<
noop_wakerÁTî»”Ö÷ now_or_neverÁdï
»”Ì
¦·,¯Ç $¤Ç õ
»ffiÁ|®
õ×
ȬΌ
ü·,Ú) $Ï) õ
informationalÁlÞ
»”Ä
õon_informationalÁ„·
»”Š
õOnInformationalÁ|š
»”æ
õon_informational_rawÁ¤Ž
»”È
õOnInformationalCallbackÁ¼¤
».ProtocolÁD
Ȭ΁
õOriginalHeaderOrderÁœ¯6
»|À5
mockÁ$è"$Ý"ŸHttp2ClientConnExecÁœß » ŸHttp2ServerConnExecÁœÀ »¨Œ’ ŸHttp2UpgradedExecÁŒÂ »¨Œ Ÿ h2_commonÁL¦ »¨Œ Ÿ h2_clientÁL„ » Ÿ h2_serverÁL× »¨Œô ò·,ßR
$ÔR
…$»|£#BytesMutÁD>»
MethodÁ4¤»¨Œq ValueIterÁL»”¶»serverÁ”λ¨ŒâüÍ'üµ@CONTENT_LENGTHÁtœ»Q»ÆI»¨GEBD HeaderMapÁL±»»Æƒ»¨|~content_length_parse_allÁÄá»”‘»Æ”©»¨Œ½ü¨'ü@content_length_parse_all_valuesÁüÎ
»”þ »Æ”–
Ȭλ
ü•
'üý @$method_has_defined_payload_semanticsÁü—$»¨Œàset_content_length_if_missingÁìŒÌtransfer_encoding_is_chunkedÁäÔ»
is_chunkedÁT¡»”ê add_chunkedÁ\ž!»”ç Ÿh2ÁÜ»¨Œ¹Ÿ ResponseHeadÁd »”÷¸·,ì®$á®í·,·$··À TrySendErrorÁd»”ÏÀ ·,¶ß$«ß­
USIZE_BYTESÁ\°Nû32ÁÜŒN­
·,“a$ˆaƒ ·,ÔŸ$ÉŸƒ $F»”"ƒ  U»ƒ EntryÁ,®»”‡ƒ ¡œ¾»ƒ RequestHeadÁ\€»”Ùƒ ClientÁ4Ä»”Ÿƒ set_content_lengthÁ”ªÀ»”’Àƒ write_headers_original_caseÁÜÐÚ»”¸Úƒ FastWriteÁL–ä»”úム·,Þç$ÓçŸdispatchÁD×»”¥À ClientRxÁD¤
»ùÛÀ
InfallibleÁTÕ»»³Û§ClientTransactionÁŒƒ»ØÛ4ò$»”Ñ$¨»¨Œ‹À 
  
â cfg_featureÁ cfg_protoÁtraceÁ
debug_spanÁerrorÁ
error_spanÁinfoÁ info_spanÁÄ&
trace_spanÁspanÁÕ warn_spanÁbodyÁincomingÁ)))))))))) )
) ) )
))))))))
BodySenderÁ)TrailersSenderÁ)IncomingÁA)KindÁCEmptyÁD
CChanÁFcontent_lengthÁFwant_txÁFdata_rxÁF trailers_rxÁ)SenderÁKwant_rxÁKdata_txÁK trailers_txÁ) WANT_PENDINGÁ)
WANT_READYÁ)Q new_channelÁQæ QemptyÁ)UDataÁUErrorÁU
poll_frameÁU
is_end_streamÁU size_hintÁZopt_lenÁ)\×)^
poll_readyÁ_ ^ poll_wantÁ^
send_trailersÁbb d ^
try_send_dataÁf ^try_send_trailersÁ^
send_errorÁ)j×lengthÁlln÷o lMAX_LENÁlrCLOSE_DELIMITEDÁrCHUNKEDÁrZEROÁr
danger_lenÁrinto_optÁr checked_newÁrsub_ifÁlz×l|×_assert_send_syncÁ~ _assert_sendÁ¥~ _assert_syncÁ¥žƒbufÁBufListÁŒ¥ŒbufsÁ¥æ pushÁbufs_cntÁ¥ remainingÁ chunkÁadvanceÁchunks_vectoredÁš'tÁ
copy_to_bytesÁƒdateÁ DATE_VALUE_LENGTHÁextendÁ© ¥« 
CachedDateÁ­ñ® ­posÁ­ next_updateÁ²æ ³ ²bufferÁ²checkÁ²¥²renderÁ² render_http2ÁºñƒfutureÁ¼¼¼¼¼¼¼poll_fnÁåüPollFnÁÆÆ±¼É¼Ë¥Ë˰ˊ ƒioÁÐrewindÁÑÑÑÑÑÑÑÑÑÑ Ñ
Ñ Ñ Ñ
Ñà¥à new_bufferedÁà
into_innerÁÑä¥ä poll_readÁÑç¥ç
poll_writeÁçpoll_write_vectoredÁç
poll_flushÁç
poll_shutdownÁçis_write_vectoredÁЃlockÁïï
LockResultExtÁñ¥ñpanic_if_poisonedÁïô¥ô¨7ƒtaskÁ÷÷÷÷ yield_nowÁƒtimeÁüüüüüüüüüü×üˆ sleep_untilÁˆnowÁˆresetÁˆí2ƒwatchÁValueÁCLOSEDÁchannelÁ*˜sharedÁReceiverÁšâ9SharedÁœ»œwakerÁŸsendÁ¡ã£¬£peekÁè&¦¦¦Í©¥¦CauseÁ¦¨+¬innerÁ¦ ErrorImplÁ®®Ü¦±is_parseÁ±is_parse_too_largeÁ±is_parse_statusÁ±is_parse_version_h2Á±is_userÁ± is_canceledÁ± is_closedÁ±is_incomplete_messageÁ±is_body_write_abortedÁ± is_shutdownÁ±
is_timeoutÁ±æ ±withÁ¾±± find_sourceÁÁ± new_canceledÁ±new_incompleteÁ±
new_too_largeÁ±new_version_h2Á±new_unexpected_messageÁ±new_ioÁ±
new_closedÁ±new_bodyÁʱnew_body_writeÁ̱new_body_write_abortedÁ±new_userÁ±new_user_headerÁ±new_header_timeoutÁ± new_user_unsupported_status_codeÁ±new_user_no_upgradeÁ±new_user_manual_upgradeÁ±new_user_serviceÁÕ±
new_user_bodyÁ×± new_shutdownÁ± descriptionÁ¦ÛצÝצßsourceÁà ¦â÷¦äcontent_length_invalidÁätransfer_encoding_invalidÁätransfer_encoding_unexpectedÁ¦è÷¦ê÷¦ì÷¦ î÷¦
ð÷¦ òצ extÁõõõõõõõh1_reason_phraseÁüüþas_bytesÁþ from_staticÁü¨+ªü¨+ªü¨+ªüЍ+Šªü÷üÉü×üü
is_valid_byteÁis_vcharÁ is_obs_textÁüfind_invalid_byteÁõõget_all_internalÁ>appendÁœŸrtÁžboundsÁžÌ4        ReadÁ¨ê5 WriteÁªˆ6ªµ6ªÇ6ªÜ6ªš6¯ ¯  ReadBufÁ²'aÁ²@²filledÁ²initÁ ·'dataÁ·æ ·uninitÁ·H·unfilledÁ¼'cursorÁ·±0·capacityÁ À× Âas_mutÁÂÔ0±0 put_sliceÁ deref_async_readÁ È¥ Ê¥ Ì¡Ìê5 deref_async_writeÁ Ð¥ Ò¥ Ô¡Ôˆ6Ôš6ÔÜ6Ôµ6ÔÇ6 pin_as_deref_mutÁÛ¡žtimerÁÝÝÝÝÝÝÝÝTimerÁåsleepÁåÍ8åà8åë8ÝSleepÁê __type_idÁÝìïí¥ìdowncast_mut_pinÁï¥ÝprivateÁñSealedÁžžžžžžžžžExecutorÁûFutÁûexecuteÁserviceÁþÄÿÿÿÿÿÿÿÿ HttpServiceÁReqBodyÁResBodyÁ¨+FutureÁÑÿ¥B1ÁB2Á¢N¨+¹NÑÿ¥ÜNæNÿsealedÁçLš¥þÆMœœServiceÁžRequestÁžResponseÁž¨+ž¹NžÑœ¤çO¤¤¤öO¤¨+¤¹N¤Ñœ«çO«¤«öO«¨+«¹N«Ñœ²çO²¤²öO²¨+²¹N²Ñœ¹çO¹¤¹öO¹¨+¹¹N¹ÑœÀçOÀ¤ÀöOÀ¨+À¹NÀÑþutilÁÇÇÇÇÇÇÇÇÇÇ
service_fnÁÑÑ£Ñ¤Ç ServiceFnÁÕÕ£Õ±Õ_reqÁÇÚÚ“NÚRetÁÚ¢NÚÚöOÚ¨+Ú¹NÚÑÇää£ä×Çèè£èƒÇìì£þþþupgradeÁòòòòòòòòòò ò
ò ò ò
òòòòòòòUpgradedÁÌ4ò¦
¥ò´txÁòpendingÁòŽæ ¥ŽdowncastÁ¥òê5òˆ6š6µ6Ç6Ü6ò×òŒ
is_noneÁò ° Š ¢ ò¤×ò¦fulfillÁ¦manualÁò©×ò òIoÁ¬__hyper_type_idÁò
®¥ò °
__hyper_isÁ±¥°__hyper_downcastÁ³¥ò­Oµµ
CanUpgradeÁ·
on_upgradeÁµ¹¹ŸYµ¼¼ŸYµ¿¿ŸYµÂŸY
cfg_clientÁ
cfg_serverÁ] StreamingÁÇ
]É×]³)Ë
]Í×kOpenÁÏ
kÑ×kClosedÁÓ
kÕ×l
DecodedLengthÁ×
׈llÛƒlllßl áÖCACHEDÁã__rust_std_internal_init_fnÁã å æ__RUST_STD_INTERNAL_VALÁå è¦\ÑRewindÁê¥êpreÁê˜;Ñî¥î×üTimeÁñÓKò
òˆñ³)õ
ü÷ƒüDurÁùqú
úˆù
ConfiguredÁý
ýˆüüƒüüצ¨)ParseÁ
ˆUserÁŠ
ŠˆIncompleteMessageÁ
UnexpectedMessageÁ
CanceledÁ

ChannelClosedÁ
“X

HeaderTimeoutÁ
BodyÁ
 BodyWriteÁ
ShutdownÁ
¦
Ÿ×¦µ^¡¢
¡VersionÁ¤
¡ VersionH2Á¦
¡UriÁ¨
¡
UriTooLongÁª
¡HeaderÁ¬
¬ˆ¡TooLargeÁ¯
¡StatusÁ±
¡InternalÁ³
¦µ×¦©a·TokenÁ¸
·ContentLengthInvalidÁº
·TransferEncodingInvalidÁ¼
·TransferEncodingUnexpectedÁ¾
¦ÀצÏ^Âú_Ã
ÂBodyWriteAbortedÁÅ
ÂØOÇ
ÂUnexpectedHeaderÁÉ
ÂUnsupportedStatusCodeÁË
 NoUpgradeÁÍ
Â
ManualUpgradeÁÏ
¦ÑצTimedOutÁÓ
¦Õ×ü ReasonPhraseÁ×
׈ü Úƒü
Ü×ü ü ßü
áÖüãï
üåüç§èùüInvalidReasonPhraseÁêbad_byteÁüì×õ
HeaderCaseMapÁî
îˆõñƒõó× 
ReadBufCursorÁõHõ¢/  øHø×Èê5Êê5Ј6К6ÐÜ6е6ÐÇ6Òˆ6Òš6ÒÜ6Òµ6ÒÇ6ò OnUpgradeÁrxÁò ƒòPartsÁ¥Ì4read_bufÁò
¥×òUpgradeExpectedÁ
ò×headersÁconnection_keep_aliveÁconnection_closeÁconnection_hasÁcontent_length_parseÁ from_digitsÁœRADIXÁ is_chunked_ÁprotoÁŸÇ"Ÿ
DispatchedÁ¡¡`¢
¡UpgradeÁ¤
¤ˆŸh1Á§§§§§§§§§§ §
§ § §
§§§connÁ¸¸¸¸¸¸¸¸¸¸ ¸
¸ ¸ ¸
¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ ¸!¸"¸#¸$¸%¸&¸'¸(¸)¸*¸+¸
H2_PREFACEÁ¸ConnÁæšææ¥æÌ4æºæ_markerÁ¸íšíí¥íæ í set_timerÁíset_flush_pipelineÁíset_write_strategy_queueÁíset_max_buf_sizeÁíset_write_strategy_flattenÁíset_h1_parser_configÁíset_title_case_headersÁíset_preserve_header_caseÁíset_http1_max_headersÁíset_http1_header_read_timeoutÁíset_allow_half_closeÁídisable_date_headerÁíË5ípending_upgradeÁíis_read_closedÁíis_write_closedÁí
can_read_headÁí
can_read_bodyÁíhas_initial_read_write_stateÁíshould_error_on_eofÁí
has_h2_prefixÁípoll_read_headÁ íon_read_head_errorÁ«ípoll_read_bodyÁ íwants_read_againÁípoll_read_keep_aliveÁíis_mid_messageÁírequire_empty_readÁímid_message_detect_eofÁí
force_io_readÁ í maybe_notifyÁítry_keep_aliveÁícan_write_headÁícan_write_bodyÁícan_buffer_bodyÁí
write_headÁí encode_headÁífix_keep_aliveÁíenforce_versionÁí
write_bodyÁíwrite_trailersÁíwrite_body_and_endÁíend_bodyÁíon_parse_errorÁíµ6íÇ6ípoll_drain_or_close_readÁí
close_readÁí close_writeÁídisable_keep_aliveÁí
take_errorÁíŸY¸ªšªª¥ª×¸¯š¯¯¥¸StateÁ³allow_half_closeÁ³cached_headersÁ³è&³
keep_aliveÁ³methodÁ³h1_parser_configÁ³h1_max_headersÁ³h1_header_read_timeoutÁ³h1_header_read_timeout_futÁ³h1_header_read_timeout_runningÁ³ date_headerÁ³£K³preserve_header_caseÁ³title_case_headersÁ³
h09_responsesÁ³ notify_readÁ³readingÁ³writingÁ³ìT³Ä³allow_trailer_fieldsÁ¸WritingÁÉInitÁÊ
Éú_Ì
ÌˆÉ KeepAliveÁÏ
ÉûZÑ
¸Ó׸Õ׸װ¸ÙidleÁÙbusyÁÙdisableÁÙstatusÁ¸ÞcloseÁÞÍwÞßwÞwants_keep_aliveÁÞŠuã¥ÞòwÞ²}Þ¦}ç¥Þis_idleÁÞ×qÞíqÞprepare_upgradeÁ§decodeÁíííííííííí í
í í í
ííííííííííCHUNKED_EXTENSIONS_LIMITÁí
TRAILER_LIMITÁí—-chunkedÁeofÁæ is_eofÁû~ £ í ×íbyteÁí or_overflowÁíput_u8ÁíStepArgsÁH
chunk_sizeÁ chunk_bufÁextensions_cntÁ trailers_bufÁ trailers_cntÁmax_headers_cntÁmax_headers_bytesÁíž æ ž stepÁ  £  ž 
read_startÁ£ £ž  read_sizeÁ¥ £ž 
read_size_lwsÁ§ £ž read_extensionÁ© £ž  read_size_lfÁ« £ž  read_bodyÁ­ £ž  read_body_crÁ¯ £ž  read_body_lfÁ± £ž  read_trailerÁ³ £ž read_trailer_lfÁµ £ž  read_end_crÁ· £ž  read_end_lfÁ¹ £ídecode_trailersÁ» í½ ×í§$À À À À À À À À À À  À 
À  À  À 
À À À À À À À À À À À À À À À À À À 
DispatcherÁà à BsÁà šà ¥à þkà $à body_txÁà body_rxÁà 
is_closingÁÀ DispatchÁê PollItemÁê PollBodyÁê  PollErrorÁê RecvItemÁê poll_msgÁê recv_msgÁê †,ê  should_pollÁÀ ó ó Çó šó ¥ó æ ó òwó Ë5ó poll_without_shutdownÁû ó 
poll_catchÁý ó 
poll_innerÁó  poll_loopÁ
ó ê5

ó só ˆ6


ó µ6Š
ó à}ó can_write_againÁó is_doneÁÀ 

Ç
š
¥
°
Š À OptGuardÁ

H
¥
ˆ
À œ
Hœ
¥œ
æ œ
 guard_mutÁÀ ¡
¥¡
ãÀ SenderDropGuardÁ¤
¤
ˆÀ §
Œ
§
setÁ§
takeÁÀ «
ã§encodeÁ­
­
­
­
­
­
­
­
­
­
 ­

­
 ­
 ­

­
­
­
­
­
­
­
­
­
­
­
­
­
­
­
­
 StaticBufÁ­
Ì
æ Ì
¾€Ì
—-Ì
close_delimitedÁÌ
!into_chunked_with_trailing_fieldsÁÌ
à€Ì
set_lastÁÌ
is_lastÁÌ
is_close_delimitedÁÌ
»Ì
þ×
Ì
·Ù
Ì
encode_trailersÁÛ
Ì
encode_and_endÁÝ
Ý
­
is_valid_trailer_fieldÁ­
á
á
±0á
Ç0á
Ô0á
ã0æ
ú0­
Ÿ!­
CHUNK_SIZE_MAX_BYTESÁ­
ê
æ ë
ë
­
î
±0î
Ç0î
Ô0­
ò
×­
ô
ñõ
­
÷
÷
÷­
ú
ú
÷­
ý
ý
÷­
  ×­

§Ì4ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ  ƒ 
ƒ  ƒ  ƒ 
ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ INIT_BUFFER_SIZEÁƒ MINIMUM_MAX_BUFFER_SIZEÁƒ DEFAULT_MAX_BUFFER_SIZEÁƒ MAX_BUF_LIST_BUFFERSÁƒ BufferedÁ  ¥    flush_pipelineÁ  Ì4   partial_lenÁ   read_blockedÁ  Úh  read_buf_strategyÁ   write_bufÁƒ ª ¥ª ª ׃ ® ¥® ® æ ® ñn® «o® Ão® ‹o® Úh® read_buf_remaining_mutÁ® can_headers_bufÁ®  headers_bufÁ® …–® ß2» BBÁ® 
can_bufferÁ® consume_leading_linesÁ® parseÁ¿ ¤® poll_read_from_ioÁ® Ë5® io_mutÁ® is_read_blockedÁ® µ6Å MAX_WRITEV_BUFSÁÅ ® poll_flush_flattenedÁƒ É ¥É ƒ MemReadÁÌ read_memÁƒ Î ¥Î Î É™ƒ Ò with_maxÁÒ ó Ò maxÁÒ recordÁƒ incr_power_of_twoÁƒ prev_power_of_twoÁƒ Ù >ƒ Û ¥Û æ ƒ Þ 
maybe_unshiftÁÞ ë8ƒ á ¥á ׃  ä ¥ä ±0ä Ç0ä Ô0ƒ WriteBufÁé é §ié  max_buf_sizeÁé queueÁé strategyÁƒ 
ï ï æ ƒ  ò ò  set_strategyÁò ß2õ Ñ—ò Û—ò  headers_mutÁƒ  ù ù ׃ 
ü ü ±0ü Ç0ü Ô0ü ã0 ú0§roleÁƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ  ƒ 
ƒ  ƒ  ƒ 
ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ  ƒ DEFAULT_MAX_HEADERSÁƒ AVERAGE_HEADER_SIZEÁƒ  MAX_URI_LENÁƒ  header_nameÁƒ  header_valueÁƒ  maybe_panicÁƒ 
parse_headersÁ« ¥ƒ is_complete_fastÁƒ encode_headersÁ® ¥ƒ ServerÁƒ ± )± OutgoingÁ± Š˜´ ´ ± ·· ± on_errorÁ¹ ±  is_serverÁ±  update_dateÁƒ ½ 
can_have_bodyÁ½  can_chunkedÁ½ can_have_content_lengthÁ½ %can_have_implicit_zero_content_lengthÁ½ encode_headers_with_lower_caseÁ LowercaseWriterÁÃ
 Å write_full_header_lineÁÅ write_header_name_with_colonÁÅ write_header_nameÁ½ !encode_headers_with_original_caseÁÉ OrigCaseWriterÁÊ 'mapÁÊ ØÊ currentÁÊ –{É Ï ¦£Ï Ä£Ï è£Ò Ò ½ àÕ ¨Õ Õ handle_is_name_writtenÁÕ ½ record_path_rangeÁƒ HeaderNameWriterÁÛ ¦£Û Ä£Û è£ƒ record_header_indicesÁƒ 
title_caseÁƒ write_headers_title_caseÁƒ 
write_headersÁƒ ð1§Http1TransactionÁä )ä ü ä Š˜ä ·ä ­¡ä  is_clientÁä ¡ä should_error_on_parse_eofÁä should_read_firstÁä Ó¡§ ParseResultÁï ¥§ ParseContextÁñ Hñ yñ 
req_methodÁñ Ëyñ ãyñ úzñ °{§EncodeÁù Hù ¥ù headÁù Ú'ù «yù æ¨ù –{ù ßz§
EMPTYÁ
EXPECTÁ
UPGRADEÁ

containsÁŸŸ¸ReadingÁŠ
±|
Š
l

ˆŠ
ú_

ˆŠ
×|
Š
ûZ
¸
׸KAÁ
IdleÁš

DisabledÁœ
¸ ¸
Ÿ
ƒ¸ ¸ ¢
׸
¤
>
BusyÁ¦
íDecoderÁ¨
íª
ƒíí­
í¨)¯
LengthÁ°
°
ˆ¯
ChunkedÁ³
º³
 chunk_lenÁ³
ø³
Ž‚³
¢‚³
ãy³
h1_max_header_sizeÁ¯
EofÁ»
»
ˆí¾
×í À
Ē
í Ã
í ChunkedStateÁÅ
StartÁÆ
Å
SizeÁÈ
Å
SizeLwsÁÊ
Å
 ExtensionÁÌ
Å
SizeLfÁÎ
Å
ú_Ð
Å
BodyCrÁÒ
Å
BodyLfÁÔ
Å
TrailerÁÖ
Å
 TrailerLfÁØ
Å
EndCrÁÚ
Å
EndLfÁÜ
Å
EndÁÞ
í à
×í
íã
ííæ
ƒííIncompleteBodyÁé
íë
×À À á î
¤î
î
 in_flightÁî
ÆMÀ ó
¤ó
ó
æ ó
 into_serviceÁÀ ø
¤ø
À û
¤û
Çû
­ˆû
½ˆû
͈û
Þˆû
îˆû
þˆû
†,û
–‰­
EncoderÁÞ­
 ×­
 ƒ­

­
Ž­

EncodedBufÁ­
×­
NotEofÁ
ˆ­
×­
¨)ò¬œ
œˆ׬Ÿ
ŸˆCloseDelimitedÁ¢
­
¤×­
­
§­
©ƒ­
BufKindÁ««ExactÁ­
­ˆ«LimitedÁ°
°ˆ«ò¬³
³ˆ«
ChunkedEndÁ
ˆ«TrailersÁ¹
¹ˆ­
¼¼×­
 ChunkSizeÁ¿ñÀ ¿¯2¿­
­
ÅƒÆ ­
ƒ  ReadStrategyÁÉAdaptiveÁÊ decrease_nowÁÊó Ê”šƒ ƒ σƒ ƒ Ò׃ CursorÁÔ¥ÔñÔ¯2ƒ إ؃ƒ 
WriteStrategyÁÛFlattenÁÜ
ÛQueueÁÞ
ƒ à׃ 
HeaderIndicesÁâР⻃ ƒ 惃 §ServerTransactionÁ§
ParsedMessageÁê¥ê¶©êû~êexpect_continueÁê«yê
wants_upgradeÁ§ñ¥ñ×§WantsÁô
ôˆ§§øƒ§§ûן MessageHeadÁý¤ýÄýsubjectÁý§iý
extensionsÁŸƒ¤ƒ×Ÿ¤>Ÿ RequestLineÁ
ˆŸ×Ÿ>ŸŸŸ
BodyLengthÁKnownÁ
ˆUnknownÁ˜
Ÿš×Æœþkhttp1Ážžžžžžžžžž ž
ž ž ž
žžžžžžžžžžžžHttp1DispatcherÁ¸¥¸¸¤ž¼š¼¤¼×žÀšÀÀ¤Àgraceful_shutdownÁÀ
into_partsÁÀç‰Àwithout_shutdownÁÇÇ À
with_upgradesÁžËšËˤ˰ˊ žÑæ Ñ
half_closeÁÑ«yÑ{Ñ0allow_multiple_spaces_in_request_line_delimitersÁÑignore_invalid_headersÁÑúzÑ max_headersÁÑheader_read_timeoutÁÚimpl Into<Option<Duration>>ÁÑwritevÁÑü›Ñauto_date_headerÁÑpipeline_flushÁÑ£KàžÑserve_connectionÁâšâ¤žUpgradeableConnectionÁå¥å¤å˜;žéšéé¤é¿é¦¿î žðšðð¤ð°ðŠ ž
ConnectionÁö¥ö¤öþkžúû¥û¤ú__assert_not_repr_packedÁþ¥þ¤ú
ProjectionÁ'__pinÁ¥¤þkú
ProjectionRefÁžÅ¥¤þkûprojectÁžÅû project_refÁžÅú__OriginÁžÅ¥¤__dummy_lifetimeÁþkúžÅ¥¤úMustNotImplDropÁúš¥úœ¥œ¤žBuilderÁŸËyŸ£KŸ
h1_half_closeÁŸ
h1_keep_aliveÁŸh1_title_case_headersÁŸh1_preserve_header_caseÁŸãyŸùyŸ h1_writevÁŸü›Ÿ²ÂŸßzž¬ƒž®×ž½h°¥°¤°Ì4°Úh°ÆMž¥¤×´ ´ ´ ´ X
X
X
Y
Z
]
]
]
_
_
_
a
a
a
b
f
h
i
k
k
k
y
{
{
{
}
}
}



˜

š
œ
©
µ

·
¸
¹
»
»
Ã
Ã
Ë
Ë
Ï
Ï
Ï
æ
æ
æ
æ
é
é
é
é
ê
ê
ê
ê
ê
ë
ë
ë
ì
ì
ì
í
û
û




Š


Œ
 
¢
¤
¤
¤
¥
²
³
´
µ

·
¸
¹
º
»
¼
À
Á
Ú
Ü
Ü
Ü
Þ
Þ
Þ
à
ó
ó
ó
ÿ

ƒ





š
š
œ
©
©
©
©
«
«
«
«
¬
¬
¬
­
­
­
®
¯
¯
¯
¯
¯
»
¾
¿
À
Á
Á
Á
Â
Ã
Ä
Å
Æ
Æ
Ê
Î
Î
Î
Î
Ò
Ö
Ö
Ö
Ö
×
×
×
×
×
Ø
Ù
Ù
Ù
Ú
Ú
Ú
Û
æ
ç
è
é
é
ë
í
ï
ý
Œ

£
¤
ª
«
±
¸
¿
Æ
ã
ç
ç
ç
ë













˜
˜
˜



š
œ
œ
œ
Ÿ
¢
¢
¢
¥
¥
¥
ª
ª
ª
­
±
¼
Â
Ê
Ê
Ê
Î
Î
Î
Ò
Ò
Ò
Ö
Ö
Ö
Ü
à
à
â
ð
ð
ð
ø




 
 
 



Á
Á
Á
Ò
Ò
Ò
Ö
Ö
Ö
Û
Ý
Ý
Ý
à
à
â
ä
ä
æ
æ
è
è
í
í
í
ò
ô
ô
ô
ú
ú
ú
û
û
û
û
ü
ü
ü
ü
ý
ý
ý
ý
þ
þ
þ
þ
þ
ÿ










ƒ
ƒ
ƒ
ƒ
ƒ







Š






˜

š
š

œ
ž
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
ÿ



ƒ











Ž
Ž
Ž


















˜

š


œ
œ

ž
Ÿ
 
¡
¢
¢
¢
£
£
£
¤
¤
¤
¥
¦
§
¨
©
®
®
®
Ô
Ô
Ô
Ö
Ö
Ö
Ø
Ú
Û
Ü
Ý
ß
à
á
â
ã
å
æ
ç
é
ê
ë
ì
Œ







 
 
 
 
 
£
£
£
£
¥
¥
¥
¥
§
§
§
©
©
©
©
«
«
«
­
­
­
­
­
¯
¯
¯
±
±
±
³
³
³
³
µ
µ
µ
µ
µ
·
·
·
·
¹
¹
¹
¹
»
¾
¾
¾
ï
ï
ï
ð
ñ
ñ
ñ
ò
ù
û
û
û
ý
ý
ý
ÿ
ÿ
ÿ












Š
Š
Š
Œ

Ž



 
¡
£
©
ª
¬
Ò
Ô
Õ
Ö
×
Ù
Û
Ý
Ý
à
ã
ä
å
æ
ï
ð
ñ
ó
ó
ó
õ
õ



­
­
­
²
³
´
µ

·
¸
¹
º
»
½
¾
¿
¿
¿
¿
Á
Á
Á
Ã
Ä
Å
Å
Å
È
È
È
Í
Í
Í
Ñ
Ñ
Ñ
Ô
Õ
Ö
ß
à
ã
ã
ã
æ
ç
è
ô
õ
÷
ø
û
û
û
þ
ÿ


«
«
­
®
®
´
´
·
·
¹
¾
¿
À
Á
Â
Â
Æ
Æ
Æ
Æ
Ç
Ç
Ç
È
È
È
É
É
É
Ï
Ð
Ð
Ð
Ð
Ñ
Ñ
Ñ
Ò
Ò
Ò
Õ
Õ
Õ
Ú
Ú
Ü
Ü
Ü
Ü
Ý
Ý
Ý
Þ
Þ
Þ
ß
ß
ß
ß
à
à
á
á
â
â
ã
ã
ç
ç
è
è
é

˜
˜
˜
 
£
£
£
«
®
®
¿
¿
¿
Á
Ä
Ä
á
á
á
ä
ä
ç
ì
ì
ì



ƒ




Š
Š
Š
Œ





š
š
š
¥
¥
¥
¨
¨
ª
¾
¾
¾
Æ
Ð
Ó
Ó
Ó
Ú
á
á
á
ç
ó
ó
ó
ù
ü
ü
ü



Ž
Ž
Ž





¿
¿
¿
Ä
Æ
Æ
Æ
Ð
Ð
Ð
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Ü
Ý
Þ
ß
à
â
í
õ
õ
õ
þ
­
¯
¯
¯
¹
¹
¹
c8ñ¨ªåêûšž¬·ê Ì Û ä )AA’)B)ÅÌIMNdôc¿cëë¿cÇÇȦZ ©û¹ì¿cËË̳) uz[´+ËþK¿cKK*Lž*)M¬*)Nº*)0ewÉ.Rz¿cÏÏÐßZ ª¢DD=R“¿cÓÓÔûZ eÁÍR´ØûÛ×ר™[Ùˆl ÷^|n¤Oî·Ø îŠ  îÐì îµß î î îé îÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿c îÄc îŒŒÐ/Žç/sDçà"ášL¥êb­­2®ñ°¯2±º2t«‚#¼*¦“íÆÆü3ȱ¼
å¸=gž¯G‚ØÆÆü3ȱ¼
å¸=gž¯G¿cêêÒ\ìè\Ñí˜;Ñÿ×»"hY`«ð¨ýñªýññÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
«ðÑ@Ñ@ PoisonErrorÁÓ@dataÁæ= ³ ;Š3÷«ð«ðØñòóÓKôˆõö³)YÊdä(+Ûùúûqüˆýþê]ÿˆ¡>&`«SؾôŠ ¾ô¿c¾ô¿cöóŒ"˜˜*â9ù¿TäøžD¿c ˆµ^ˆŠÏ^ŒˆŽè^†_¤_¹_“X˜à_šú_œ‹` ž¡`
7¯ùûŸYË¿c¡ ¢£¤¥Ø`¦§ì`¨©‚aª«’a¬­©a®ˆ¯°Äa±²Ùa³´ìa|È8Vw¿c·¸¹–bº»¨b¼½Éb¾¿íbÓÙRŒ9¿cÂÃÄú_ÅÆ¶cÇÈØOÉÊàcËÌýcÍΟdÏеd+ðßD¿cÓÓÔÜd ÷áÂ'¹-9ü¿c¬¬¨+­˜;¦!Ž3 YðóÄc£û¾£ûé£ûÔ÷éÔ÷
HeaderNameÁ÷NewLineÁÙabTooManyHeadersÁØ`n!#ìŽö¸éÔ÷ßß
InvalidMethodÁà_privÁÔÀÙ4!øabpéÔ÷ÜÜInvalidStatusCodeÁÝÑüÖ¤Õêt"RéÔ÷ÇÇÈ
InvalidUriÁɈŒ  éÔ÷ÌÌÍInvalidUriPartsÁΈŒ  LÒ‡zª=omÄcöú¾öúØ×רþdÙˆü FU­%{³+|¿cìÿÐììÿµßìÿìÿìÿíßìÿìÿºìÿšeìÿðìÿ 8
ðìÿªBªBö­B¢/÷<®B÷<9)
-ÜnLçEçEèEGlobalÁ ¿±‡§í#ðìÿúHúHßûHÁ‘4Ý­f‰úM÷ðìÿÂÂBytesÁõ £Ä£ÅÈò£ÆvtableÁ£NÍâíŠáéÂìÿàìÿ¿cêê‡fë¢fütó 7Ò–[•Äcƃ¾ƃØîîï¿fðˆõ :b­jú¿c‘„¿cõõûf÷¢/ r{…2ÅîsH¿c²²òG´@ µ’H  H y–¶¹nºýç8¨žBoxÁ¡ˆˆ¢ˆl }.xÏ«ðÓ¨ 8¥¨„¾„¾PinÁ†¾ ˜X$]È=„kt•¡ªá…ª±†ªĆ«ðÜNš«ðª‡ž 8¤çOž 8ˇÒ‡žžï„¡ˆˆ¢ˆl }.xϤÓçOžòHòHÆõHµ Ñ,öHphantomÁÑ,÷H¤Ñ,+átLaû§³ˆÓ½ˆž†J†JK‰Jµ 7ŠJé‡7‹J¤7·0ØQd賈ӽˆžÕÕŠSرÇÙ³SÇZ5gޏÍj´ñ“NôôçOö¶©¦÷Ú'¦Œ4ñŠ|åÁŠ¿cÕÕŠSرÇÙ³SÇZ5gޏÍj´ñ£ØŠ Ø•hˆ¦hòr}°a¢Y–¿c½hÌ4ŽÚhÑM§mrA«ð¨ßUˆÌ4ò:#Ï@¬Ë§ªâŒ¿c⌂Øî‹¿cî‹¿cÿh m—¨fË7ýÄcľĬ«ð·ôôçOö¶©¦÷Ú'¦Œ4ñŠ|å· 8ôôçOö¶©¦÷Ú'¦Œ4ñŠ|å·ˆˆöOж©Ú'“q8‚ õ™ÍŽ· 8ˆˆöOж©Ú'“q8‚ õ™š¿cææømêÌ4¸ëº¸ì¬n¸u—N2k
%šš¥“íº¿cŠ

Œ
±|
Ž
l
ˆ¸

ú_
ˆ¸

×|

ûZݬÁñ !(ü¿c³³èx´õx¸µy¸è&¸·«y¸¸½y¸¹Ëy¸ºãy¸»ùy¸¼—z¸½¹z¸¾ßz¸¿£K¸Àúz¸Á–{¸Â°{¸ÃÅ{¸ÄØ{¸Åç{¸ÆìT¸ÇĸȆ|¸¡X ’½“¿cÉÊ˱|ÌÍú_Έ¸ÏÐ×|ÑÒûZÌL´{@Þ—
š

²«¦
§
ˆ¬œ

ëõ–ré%Û¶•ض•Š ¶•¿c¶•³¶•ب
¨
™¬©
í²C.c–ãÐì¿–µß¿–¿–¿c¯
°
±
׬²
ˆí³
ò¬´
ºíµ
‰­í
øí·
Ž‚í¸
¢‚í¹
ãyíº
½­í»
¼
×­½
ˆí×Å9¹å_€£Ø‘—Ðì‘—µß‘—‘—¿cÅ
Æ
Ç
¯®È
É
Á®Ê
Ë
Ò®Ì
Í
æ®Î
Ï
ü®Ð
Ñ
ú_Ò
Ó
œ¯Ô
Õ
¯¯Ö
×
¯Ø
Ù
Ö¯ Ú
Û
ì¯
Ü
Ý
þ¯ Þ
ß
° ³›¼Ó¤.¢Ðìõ˜µßõ˜õ˜Ûõ˜Øõ˜Š õ˜¿c¿–¿cé
é
ê
Ö° ü¹R{ðQ¹0Äc¶›¾¶›‚Øà à ©‡å þkÀ æ $À ç í‡À è ü‡À é ‹ˆÀ c
'¦•ßLÇš¥Œ"


ꋚ
ˆÀ 
À  ÓOEjˆÏ68¶†Œ"¤
¤
¥
⌦
ˆÀ  œs‹¯Ö–xÀ“íî
î
á ñ
œ±À ò
ÆMŒ€Ë‚̤šê î
î
á ñ
œ±À ò
ÆMŒ€Ë‚Ìžëë¿cز­
ˆÞ­
¨úÐåCÂ#ØŸÐ쟵ߟŸ¿c¤³­
fÝ¿ü iÍŽ¿cÛ³˜ˆ­
 !£cåÖpÉÕ¿cœò¬žˆ­
Ÿ ׬¡ˆ­
¢£·´KóbH Z6Ðìû µßû û Øû ¿c«­®•µ¯ˆ­
°±¯µ²ˆ­
³´ò¬µˆ­
·áµ¸ˆ­
¹º€¶»ˆ­
"{îè øÍŽ‡ Û¿¿²¶Àñ­
¯2­
í
ñHÍÈ£ï¥ÌØÆ£Š ƣƣ¿cÆ£êbƣ釠͎釠ŠŠTakeÁÇ ˜;ÀÈ limitÁÀÎ,ò%JðV͎釠© © ChainÁ¬ ¬æ­ ­æ«èÔ襬© © ¹¤¬ ¬æ­ ­æ«èÔ襬ƣ͎ ÄcÁ ¾Á ¿c    ÿ”£ Ÿ•ƒ ¤ Ì4ƒ ¥ ½•ƒ ¦ Еƒ § Úhƒ ¨ 앃 © …–ƒ YjÖ®vs0y«ðš“íÕ¦Ì Õ¦ÛÉÊ·Ë ·ƒ Ìó ƒ Í”šƒ 'ˆHwJPyØ÷§Š ÷§¿c÷§³÷§ØÔÔé·Öñƒ ׯ2ƒ 3àåb¤&‰§«ð¿có¨ó¨¿cé é Ü›ë §iƒ ì ü›ƒ í œƒ î œƒ À’€Ge 9 ÍŽΩ¿cÛÜݹ¸Þß͸zÏAÒK´±…ä ° âm³EZjÛ à à Ä …£ †ÿ
’&ÈöÛ Ê Ê ª¤Ì ؃ Í Ô¤ƒ Î –{ƒ %w|†ý—Y”8Ûââì¸ãÐ ƒ 仃 §ÿo2}ÞdkØ—¬Š —¬¿cêêÁ¹ì¶©§íû~§îï¹§ï«y§ðŽº§Þ GçA|M’«ðÛôôõ¸ºöˆ§ tÊMÌħ{RØÜ­Š Ü­¿cÜ­¿cýýöºÿÄ™»§i°»Ÿ%],;Oؼž³·®¿cŠë»ˆŒ ŸìZó[X³Ÿ¯Ð쟯µßŸ¯Ÿ¯¿cмˆ˜ê¼rzt?Óâ<“íöö–ÄùþkžW#›öméų¶†ˇ«ðöö–ÄùþkžW#›öméų«ð³ˆØŸŸÎÇ  Ëyž¡£Kž¢íÇž£‚Èž¤—Èž¥´Èž¦ãyž§ùyž¨ãÈž©ü›žª²Âž«ßzžÕ_“ñŠU¿cܱ¿c°°½h³Ì4´ÚhµÆM²t‡ŸkΫ𳈿cöö–ÄùþkžW#›öméų€‘³ˆ‚Øöö–ÄùþkžW#›öméų€‘ˇ‚Øåå€Ãè˜;
ã4>¦éÖ€‘ˇUA\ÇÍËjÏÕÓz×îêùñŸµ¡À·ÑÂÕÓÛ¬Ü×ìêóîøõÀ²äÕ¤ªæ
Š
Ó³ÕÉ¢

¾
¯
à
Å
¨
ë
é
¤¼«ò
¿ª   ÒÉá Ôù é àÛñêûôƒýš®Ÿ°¼öÚ×ùž

å
Å
Ä¿ÎÉåâ÷ôÛ×÷ñùÚ×ñîèÕŸ

ª
¨
À
¯
æ
Å
©Å¿ÏÉØÔæâøô¬ŸÝ׃ùìÕ¡

è
Å
È¿ÑÉèâúôÞ×Þ׬
¨
Â
¯
â
Å
¦ß×ß×­
¨
Ã
¯
ã
Å
ާá×á×n×â¬è¡ê¡ì¡î¡ð¡Â÷
ú
ý
|×ݬòÓꩽ é
·
î
¿ä Ôü é º­ô
¿ÉƯæø
î
É   öËÆ 
à ËöðåäêÈÊ
Ì„¾çêÐÒ
Ô„¾ôÖ¿¡˜¡

«
¤
߬ôÓê«¿ é
ã×å×ç×××׊×פ
«
²¹òHÀ†JÚÕ®¹ô¼
¿ˆÂ
×
¤

Ù Éýû
î
Î   ± ° Å Ã Ï Ê šœö)Á
¿c6ÛõØ8Š …Ðì?µß88é ÄcL0êb#“í‚Ø#¨#ª"ñ"Œ"¾íß*ºšeðàšž¬&·Þ—³ê Ì ä Û ü¡nÝ d“ؓؔØÎ•؈ä o
³΢½Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£û íæ
æ

maskÁé
indicesÁê
entriesÁë
extra_valuesÁì
dangerÁPa $piwºº÷»˜;¾¼ is_sensitiveÁ¾ÚÞ ªMtLìm
ìmûÂ÷m ĺnÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŠŠ‘*Œ˜;ù|ŸÓ“süºn$Ën
äTžÆ¥ 4Ën*ì´nÔoÄo
É
 ån ÛžÆìn
 ¿o
 DÇo

Œ¿o$Âo
¦Ã [
A  tÂoü‹o Ö¿£û
ýo
Ìýo 
ôÙo eãûü¿o9<Ño
ç[ãûeÀÉ Î] üÑo'¥
¬´À
þo œØ¤Â&  #
)2 h c
@ F[ ad{øÌ¡nÝ ü«nÓtàn«¹ÊÓÜæðÃ
®ãÁŸ¥> ãÁI ÌÌkΞ:¸Ï local_wakerÁ¸ÐßC¸Ñ¬n¸Ò_marker2Á¸f'EwÚ]¾åÏûÂCÃD÷mžÆ¯nÙÅt ÙÅ
DànžÆ"ü„o&£ûSÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÞÆ`ÃJõɼëÜ µo %,¤Âäìþ÷$ñmûÂtrailersÁ<ÃäÐZV\Vb \m{ œØœ
dª/6+(œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ã ãÁ ŸÎ) 1 ¡nºœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ã¤Â¢ „¾„¾Ð…†¾ ˜X$]È=„kt•áÁÝ ŸÎæ ûÂZÞÆÙÅËÏžÆ3£û[ûÏΞÆÃõÉs¢¤Âh
p
áÁy
þ
ûÂäÐÁà äÐßVáVç á
àÆk±Ç!ÇÈÃ5äÉžÆYÃJäÐè¡ÿ´¸ÈÒ 0 3ÈÒ1`üç"qö˜.˜ÈÒ¤ÈÒ¼Ö ×ÈÒü¤Js î%:ÈÒÈÒ 6 3ÈÒ1fÜ × ·üóFt îlº·ÙÂ4¼ÈÒÈÈÒ„å × óü¾8u î%29ÁDATE_VALUE_LENGTHÁùC·e

éC·e
¾Ë/Ë/ÉÍ/borrowÁÌ-Î/»Ì-ð…žf+4š¸ðùCÕúeåÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‹Þ ‹ÞßÞ´#ùBfaã®®£°˜;¨it§ÅLS¶‹ÞáB¢faY åßÞßÞùCðe
éCðe
ЋÞ06ùC¦®e  æäÞøß1ßÞ C¿eùCíÔeùC‚!­e  èñá$ßÞ C!eO CÀ$eùCÛôeåßÞ æñáìèñá¤VDATE_VALUE_LENGTHÁø~Â
v ü×
# Ì×

#
*Œ×

1GK ï
h
o

¦T~
 ù
   "ÔÇ 
   
"ӂ 
Ð /
?sqù€@#ùž"# 
ùêž"#
¶cüˆ& $  CS
Zá€#
ÜW fy à  ü ×
á 
è üÁ § ìÿ  
 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙNÀèW¢èRù€Üì#YäÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Td£Â¢èå ù  T¤'  ¤' ,©'  6 ­' ü¤'8 L²'  ²' $·'  6 º' ^\¿'  È' 
"D¿' 
/?E É' ÈÏ×ã
, Ú' tÎ'
 \Î' 
1 & Û' 7
Þ' ü€"Þ $¡"  —" ÐÐ55À­@aL#  £# $# !6< ¨# L¨# $­# ~ °# ´›# ƒ#4·# üð"G $Œ#  ‚# â᦭ @LŸ&  §& $Ÿ& 6< ¬& L¬& $±& ÿ ´& ´Ÿ& ƒ#4»& üñ%J $&  †& â᦭ @ ,¡(  ©( 
ü°(Œ  |¶(  ¶( \º( ,º( 
$À( 
Ús4,À(  Ä( m~ '- Ô(  Þ( 

DØ(   
  
2 
à( 
üê(< 
„î(  ü(  
"lî( 
/?E ý( ¦) 

 ¥) 
4¯)  ´) $ ' r ™)  <”)  Û¼ š) 
»)  í»)  Æ) Ç)
¼üÆ(v  M K|
 øí°(Œ  Ÿ$Á)  Û¼¤¢
«üà'ç ü üÐ(l ÀèTŒ( ¢è,û' X<F77,¢è-ÀÀµ¼|zzüÿ(' È#"*1ñ«´­D ú
10Áü”#  6C¢è üú>å¢èÛûÛû6#b"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"ÁL•$•œ5 86jüï0·Ù¡-L¿$¿Æ5 86jü¢'Îú¡-|ÏO\ÏOè
 ÝO/ 2è
0^ü«O4é
,ÇOÎú-è
 è
Ä›P¤›Pé
 ²P/ 2é
0^oÁ}ˆÎúé
é
{ _ }ÁÅÃé
Áî ñé
ï/Ç>JÎúS[Ué
aé
{ _ }ÁÄáQ¤áQé
 øQ/ 2é
0^oí
}ˆÎúé
é
{ _ }Á 8192Á INIT_BUFFER_SIZEÁT¿$¿Æd; 86dpŒ¸ $ ' J Èü†Dž ÎúÎúš>16Á@64Á@MAX_WRITEV_BUFSÁd100Á30ÁøÏ ú0 -øÏ+Z¼î üÓ3§ ¨²6¬øÏ¸øÏdDEFAULT_MAX_HEADERSÁdDEFAULT_MAX_HEADERSÁdDEFAULT_MAX_HEADERSÁdDEFAULT_MAX_HEADERSÁdDEFAULT_MAX_HEADERSÁdDEFAULT_MAX_HEADERSÁ ôüÞ!ƒ
Ü­& ô$ ü„"
Ü­,& ôü«#
Ü­&ü5 ר% î18? ñó%öó1†J†JK‰Jµ 7ŠJé‡7‹J¤7·0ØQdèå ÌìÓ ùû%¾ô1Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ­Ö­ÖDurationÁ®ÖsecsÁâ}¯ÖnanosÁâ}Zµ–²ªÉÐ ùþ%¾ô1£’9@, ˆ%ñõ1Ô÷9@ %ñõ1éù9@ ¡­%Ô÷1Œù9@¼é
ר%ìÿ1Â9@üÌ+
îï&‘„2æ
æ

”Âé
£Âê
µÂë
ÇÂì
ÞÂPa $piw˜ŸD؉ Š
Ž
&£‘2¿–:A$ï‰ Š

&£‘2¿–:A$¹Š ÉÍ&Ì”2Ÿ:A ¯
±
%‘—18?µ ¯
¼
%‘—17>´Ïœ 
¶†"
/


ꋚ
ˆÀ 
À  ÓOEjˆÏ6¶†|„¾„¾Ð…†¾ ˜X$]È=„kt• Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¶†þ ´Ñ¢ ¤
¥
&Ì2Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙíÄ× %Á 18? %û 1Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙªBªBö­B¢/÷<®B÷<9)
-ÜnLëëûì˜;ÃŽ4LÓNç¢Óçî  %û 18?
 «ÍŽ®)Š¢5ÍŽ=D
 «Íޱ)Š¢5ݤ=D<  «ÍŽ´)Š¢5© © ¹¤¬ ¬æ­ ­æ«èÔ襬è|ƒ  «ÍŽ·)Š¢5¢è=D  «ÍŽº)Š¢5© © ¹¤¬ ¬æ­ ­æ«èÔ襬© © ¹¤¬ ¬æ­ ­æ«èÔ襬¢è¢è»Â ôõ%Ü­18?ìé Š(Ÿ¯4¥¥¦§ˆÔ É©jm…½¸éj¸¸‚a¹schemeÁŒ º authorityÁŒ »path_and_queryÁŒ 
VÀ™×™ÑØ
 %а18?  ¡¥%¡¢£¡`¤¥ˆk¦ˆ‰­E´¯Ì¦n´ŒVòûe£; {5 §ƒ¦õžþòŸœÀÄ$  headerÁ4ƒ!¬L!æ
4!¥çO<ž!ôöOD§!ˆ
StatusCodeÁT±!
‚a½!¸ Ø`<Â!ó ¨+,ä!¬Í4ë!©ü½% # hyperÁÕúüÙTQ hyper is a **fast** and **correct** HTTP implementation written in and for Rust.Á®ú ## FeaturesÁÂú¼Æ - HTTP/1 and HTTP/2ÁÌÞ - Asynchronous designÁäø - Leading in performanceÁä• - Tested and **correct**Áô² - Extensive production useÁüÑFC - [Client](client/index.html) and [Server](server/index.html) APIsÁ˜úüœNK If just starting out, **check out the [Guides](https://hyper.rs/guides/1/)Á first.**Áøú”ü ## "Low-level"Áúü“EB hyper is a lower-level HTTP library, meant to be a building blockÁüÙ# for libraries and applications.Áýúü>; If looking for just a convenient HTTP client, consider theÁüÀ63 [reqwest](https://crates.io/crates/reqwest) crate.Á÷úœû # Cancel safetyÁúü“JG Futures returned by hyper are cancel safe: dropping a future before itÁüÞC@ completes is the supported way to cancel the operation. See theÁü¢ SP documentation on individual futures — for example `SendRequest::send_request`Áüö LI in `client::conn::http1` and `client::conn::http2` — for the protocol-ÁüÃ
&# specific behavior on cancellation.Áê
ú¼î
 # Optional FeaturesÁ úüŠ NK hyper uses a set of [feature flags] to reduce the amount of compiled code.ÁüÙ KH It is possible to just enable certain features over others. By default,Áü¥ LI hyper does not enable any features but allows one to enable a subset forÁüò KH their use case. Below is a list of the available feature flags. You mayÁü¾
LI also notice above each function, struct and trait there is listed one orÁü‹B? more feature flags that are required for that item to be used.ÁÎúüÒLI If you are new to hyper it is possible to enable the `full` feature flagÁüŸKH which will enable all public APIs. Beware though that this will pull inÁüë2/ many extra dependencies that you may not need.Ážúü¢2/ The following optional features are available:ÁÕúüÙ&# - `http1`: Enables HTTP/1 support.Áü€&# - `http2`: Enables HTTP/2 support.Áü§*' - `client`: Enables the HTTP `client`.ÁüÒ*' - `server`: Enables the HTTP `server`.Áýúüa^ [feature flags]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-features-sectionÁãúÄç ## Unstable FeaturesÁúü„_\ hyper includes a set of unstable optional features that can be enabled through the use of aÁüä,) feature flag and a [configuration flag].Áúü•PM The following is a list of feature flags and their corresponding `RUSTFLAG`:Áæúüê:7 - `ffi`: Enables C API for hyper `hyper_unstable_ffi`.Áü¥EB - `tracing`: Enables debug logging with `hyper_unstable_tracing`.Áëú„ï
For example:Áút„ ```notrustÁü“85 RUSTFLAGS="--cfg hyper_unstable_tracing" cargo buildÁ ```ÁÔúüØZW [configuration flag]: https://doc.rust-lang.org/reference/conditional-compilation.htmlÁ³ú # StabilityÁÇúüËNK It's worth talking a bit about the stability of hyper. hyper's API followsÁüšMJ [SemVer](https://semver.org). Breaking changes will only be introduced inÁüèIF major versions, if ever. New additions to the API, such as new types,Áü²<9 methods, or traits will only be added in minor versions.ÁïúüóOL Some parts of hyper are documented as NOT being part of the stable API. TheÁüÃOL following is a brief list, you can read more about each one in the relevantÁô“ part of the documentation.Á²úü¶NK - Downcasting error types from `Error::source()` is not considered stable.Áü…LI - Private dependencies use of global variables is not considered stable.ÁüÒKH So, if a dependency uses `log` or `tracing`, hyper doesn't promise itÁìž will continue to do so.Áü¼NK - Behavior from default options is not stable. hyper reserves the right toÁü‹GD add new options that are enabled by default which might alter theÁüÓOL behavior, for the purposes of protection. It is also possible to _change_Áü£IF what the default options are set to, also in efforts to protect theÁÜí most people possible.Áƒ¦õžþòŸœÀÇÄÈŠªÂ¬Áæ
À¥çO¿ôöO¾ˆ 䪴
‚a³¸ Ø`²ó ¨+±¬Í°©ˆ~ruhk]`RUGJ25'*dÕ!

<"†"Ä\
  Ó  S+ ) * + 6, ,8û$-& 18û$2, @ A L, B8÷$C& G8÷$H
M*U X Ñ, b c Ê+ q r }8âs v |, w8û$x+  Œ ®8äD  ­8docsrsÁ4$ œ8Óž ¡ ¬8⢠¥ «, ¦8û, ¼8÷
Ë´Ö í á ó , ô õ , ö8÷& û8÷
*  ß8¢&\ œ ž Ù+ ¬ ­ ® ¹8£¯ ² ¸8ºÄ Ç ì8» Ð7š½$ Ù8» ã7¨$ í8ºÿ  ©8» 7D$ 8»<— Ÿ7Æ$ ª, Ç È Î, É8÷
ÏL™","”” § ¥ ­ ¹, ® ¯ ·, °8argÁ±& ´8¯µ ¸*» ¾ £+ È É â8âÊ Í á8» Ö7tracingÁ ì 8ÐÙ'8 ˆ  , Š  , Œ8ÖØ % ¼¨ À  Æ Ò, Ç È Ð, É8ÖØÊ& Í8¯Î
Ñ*Ô ×  á + ï ð 8âñ ô ˆ8» ý7ÐÙLÿ  
8©8_spanÁ,­ ³8ÐÙ'¼8×& È É Ò, Ê Ë Ð, Ì8ÖØÍ Ñ% Ó8ºÜ ê8enteredÁ ò ó”– © § ¯ », ° ± ¹, ²8ÖØ³& 8¯·
º*½ À ¥+ Ê Ë ä8âÌ Ï ã8» Ø7ÐÙ î Ÿ8ÐÙ'ƒ8è&,… Š  , Œ  , Ž8ÖØ % ¼ª   È Ô, É Ê Ò, Ë8ÖØÌ& Ï8¯Ð
Ó*Ö Ù  ã + ñ ò 8âó ö Š8» ÿ7ÐÙL  ƒ 
8«8ºÜ µ8ÐÙ'¾8ô& Ê Ë Ô, Ì Í Ò, Î8ÖØÏ Ó% Õ8ºÜ ì8ËÝ ô õŒ˜  ª  §
 °  ¼ , ±  ²  º , ³ 8ÖØ´ & · 8¯¸ 
» *¾  Á  ¥
+ Ë  Ì  å 8âÍ  Ð  ä 8» Ù 7ÐÙ ï  Ÿ
8ÐÙ'
8…'$†
 Š


, Œ


, Ž
8ÖØ

%
´ª

 Á
  Ç
 Ó
, È
 É
 Ñ
, Ê
8ÖØË
& Î
8¯Ï

Ò
*Õ
 Ø
  â
 + ð
 ñ
 Š 8âò
 õ
 8»
 þ
7ÐÙL€  ˜  
8ª 8ºÜ  ´ 8ÐÙ '½ 8'L¿  È  É  Ò , Ê  Ë  Ð , Ì 8ÖØÍ  Ñ % Ó 8ºÜ  ê 8ËÝ  ò  ó ”–   ©  §
 ¯  » , °  ±  ¹ , ² 8ÖØ³ & 8¯· 
º *½  À  ¥
+ Ê  Ë  ä 8âÌ  Ï  ã 8»  Ø 7ÐÙ  î  Ÿ
8ÐÙ 'ƒ
8Ä&,…
 Š


, Œ


, Ž
8ÖØ

%
¼ª

 Â
  È
 Ô
, É
 Ê
 Ò
, Ë
8ÖØÌ
& Ï
8¯Ð

Ó
*Ö
 Ù
  ã
 + ñ
 ò
 8âó
 ö
 Š8»
 ÿ
7ÐÙL  ƒ
8«8ºÜ µ8ÐÙ'¾8§' Ê Ë Ô, Ì Í Ò, Î8ÖØÏ Ó% Õ8ºÜ ì8ËÝ ô õŒ˜ ª ÷ ° ¼, ± ² º, ³8ÖØ´& ·8¯¸
»*¾ Á õ Ë ï+ Ù Ú ó8âÛ Þ ò8» ç7ÐÙ  å
88ºÜ,— 8ÐÙ'¦8¸' ¬ ­ , ® ¯ ´, °8ÖØ± µ% ·8ºÜ Î8ËÝ Ö ×Œú$‡ Œ   ž,   œ, 8ÖØ& 8¯š
*  £ + ­ ® Ç8⯠² Æ8» »7ÐÙ Ñ 8ÐÙ'æ8Õ ì í ö, î ï ô, ð8ÖØñ õ% ÷´ŒL™ £ õ © µ, ª « ³, ¬8ÖØ­& °8¯±
´*· º ó Ä í+ Ò Ó ì8âÔ × ë8» à7ÐÙ ú ã
8Œ8ºÜ, 8ÐÙ<˜'Ÿ8Ê' ª « ´, ¬ ­ ², ®8ÖØ¯ ³% µ8ºÜ Ì8ËÝ Ô Õd¥"ü0- Streaming bodies for Requests and Responses.Á1úü5PM For both [Clients](crate::client) and [Servers](crate::server), requests andÁü†GD responses use streaming bodies, instead of complete buffering. ThisÁüÎNK allows applications to not use memory they don't need, and allows exertingÁü<9 back-pressure on connections by only reading when asked.ÁÚúüÞ*' There are two pieces to this in hyper:Áúü;8 - **The [`Body`] trait** describes all possible bodies.ÁüÉA> hyper allows any body type that implements `Body`, allowingÁü‹EB applications to have fine-grained control over their streaming.ÁüÑDA - **The [`Incoming`] concrete type**, which is an implementationÁü–LI of `Body`, and returned by hyper as a "receive stream" (so, for serverÁüã%" requests and client responses).ÁúüKH There are additional implementations available in [`http-body-util`][],ÁüÙ%" such as a `Full` or `Empty` body.Áÿúüƒ63 [`http-body-util`]: https://docs.rs/http-body-utilÁ$­")l~BufÁË!ÍÂ"ú_$ë)#FrameÁ,„X$SizeHintÁDži%)DÁA&*4· K'™[lÊ
×(,ÈŠ|à„ùpœ“^ıT´§ Jܼ
>dÚ

?@ACKOP× ¤,)*¹N4k‚Ø)+Ð…„¾),k<Ì).·œØ)/ÍÂ)0mpscÁ$")2oneshotÁ<¡ù)3readyÁ,«)4 FusedStreamÁ\™S)6StreamÁ4¦E)7¬Læ
)8ú_$¶)):“€X);¨€i)<™[lÈ×)=(€9,¶)>Dgœ^[lwMAD36(|‰œ÷d‚œ‘âÌÎ|•ÂLªµ·¦¨™¤Á¤§}|ò»š½Œ°»”ǻƔÛüÆ(ü¯@ü¦K)ŒŒ*ˆ" 
¥@KÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£ûœû »š½Œ¹ »”Ð »Æ”ä üÏ (ü¸ @ü¯ Kt€
)žÆœüü®
EB A stream of `Bytes`, used when receiving bodies from the network.Áô
úüø
da Note that Users should not instantiate this struct directly. When working with the hyper client,ÁüÝ `] `Incoming` is returned to you in responses. Similarly, when operating with the hyper server,Áü¾ # it is provided within requests.Áâ ú  # ExamplesÁõ ú”ù  ```rust,ignoreÁ”Œ
 async fn echo(ÁüŸ
+( req: Request<hyper::body::Incoming>,ÁüË
GD ) -> Result<Response<BoxBody<Bytes, hyper::Error>>, hyper::Error> {Áü“)& //Here, you can process `Incoming`Á•Ä.üË0 streams do nothing unless polledÁD‡ëëÅÌIMNdôcBT$)AACDE³)FÃ)GÎ))Hã))Iñ))Jÿ))7ð-ñÌ)µŽ7ð-ñÌDEFEGHIJ,µ)CCµŽ)CCµŽ$»š½ŒÊ»”á»Æ”õüà(üÉ@üÀKA)CCµŽìŸ)CC î´Æ)CC¼õüæ4)CCð9˜˜;"ù•”(iš)΋‡ü¤))CCð9˜;ùl|6–„`¢ÃÄõ»š½Œ³»”ʻƔÞüÉ(ü²@ü©K.üö2"Sender does nothing unless sent onÁ4‡í0ewÉ.RzLMNÄ”<”)KKššð9â9øælUðNAœ²)KKÚ†üË#)KKÙÅÌ¿»š½Œý»””»Æ”¨ü“(üü@üóK)¼ª»š½Œè»”ÿ»Æ”“üþ(üç@üÞK)ëëRSTü¥ \»š½Œß»”ö»Æ”Š üõ(üÞ@üÕK îíëëQQ
RÎ)t¿ wanterÁ4Þ ô¥&¨&)µŽëëQQ
S$¬&üƒ'!,'ëëQQ
T´Ç0ëëVWXYZ*+,-.XYZLä0$é0UUÂTû0,€1UU£ûü›1ÄTž1¾¿À„¾„¾Ð…†¾ ˜X$]È=„kt• ¾ëë ¿ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åÀœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
XX“€Z%~—ÌœÔ7¢ëë*ëë+U ™3U
X$3cxÁŒ5üêPlíPÁ ÁëëU ûPU
Y$üPüíTLðT Âëëii¨€jlowerÁkupperÁøÎ0é‡þ2U úTU
Z$ûTü¥V5»š½Œ²U»¨ŒÅUü±U&»”éU»Æ”ýUüèU(ü Uzü—U…<¨V) îï
[decoded_lengthÁt°Vä£\ëë]Àc]üÆ\8É\ÃÄÅ Ãëë Ä c cˆ¢cµ
 `£c¢/ `àB¤GS
ÅÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ È¨+ O˜éBL\ Í\\
]$Î\± Ô\\Çc»š½Œ…c»”œc»Æ”°cü›c(ü„c@üûbKí_abfhiü“dTT¡dÆÇÈ Æí ÇÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åȪÔ^ ¬d^
_$±dæ›·df_<closure_kind>Á`<closure_signature>Á`<upvars>Á``_`ÐÐ SendErrorÁÑ"m½ã¤j£ûüÈfHLËf)ÉÊË Éí ÊÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å˪Ô^ Õf^
a$Úfæ›àfüÊmVlÞmÌ ÌíÃÌc^ ìm^
b‡käаlˆÍnb8ƒƒbdëÁ¤Â 8íÃÍì8cT‚Ø®©c®©ƒØ¤Âu¦©{¼©Ë©b!tb<coroutine_kind>Ád <resume_ty>Ád
<yield_ty>Ád <return_ty>Ád´¤ddbãÁÙobÿ£e—¤e´¤eebõÉü¥sI»š½Œṡsl³sÍ ÍíÂÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Â^ Ás^
f$ÆsÇ0,Ìs,¼tfÿ£g—¤g´¤ggfgÛÛæ ÝerrÁ"Þ¹"?Gi_ŸŠ‹‡Âü”uw»š½ŒütÌötŒ¢uÎ ÎíÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÃ^ ½u^
h$ÂuäÐDÐuü½x6TËxÏ Ïí£û^ Öx^
i$Ûxñ¬áxÔéz»š½Œ§z»”¾z»Æ”Òzü½z(ü¦z@üzKíkÀcküŠ{8{ÐÑÒ Ðí Ñ c cˆ¢cµ
 `£c¢/ `àB¤GS
Ò‡¡j ‘{j
k${± ˜{ »š½Œû
»¨ŒŽ üú
&»”ª »Æ”¾ ü© (üñ
büè
m q×Ø× ¤,lmDüŽ(»š½Œf»¨Œyüe&ü\1 îoëoü½!™ï înn
oÅoÿ£p—¤p´¤ppopÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ î”绚½Œ¹»¨ŒÌü¸,ü¯7l”‹ îstuvwxyü¤/rr îüó'<„rr îü¾$rr îü’ %»”лƔäüÏ(»š½ŒùüË@üÂK îrr
vüÎ +»š½Œç
ȬΜ
üæ
&»”𠻯”® ü™ (üÙ
nüÐ
y  î™ïrr
w ü¥H»š½Œù
»¨ŒŒüø
&üï
1Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
 îÔ÷rr
x¿üÒ)»š½Œë»¨Œþüê&»”ž»Æ”²ü(üÝnüÔyÓ Ó îr çr
yamtÁòü¼! î{Àc{üä8çÔÕÖ Ô î Õ c cˆ¢cµ
 `£c¢/ `àB¤GS
Ö‡¡z ëz
{± òü§# î}Åc}üÑ8Ô×ØÙ × î Ø c cˆ¢cµ
 `£c¢/ `àB¤GS
Ù‡¡| Ø|
}± ß´ã Œæ 
~Ô€  ¥Íì«ð Ìì«ð$“ 
«ðÔ¢  ¥ÓÀ ²  «ð 
«ðT³"4·"¼Ðï÷ü”L»»Æ”"ü
(»š½Œ7ü @üK[ŒVecDequeÁDŸ(IoSliceÁ<-æLÞÿCˆBufMutÁ4HÍ,PŠèDW¿Ô†„$p,;`bKM:<*,äc<u¥ÓÀ }ýïsDçà"ášLŽŒ†$†ŒŒŸ(Ÿ(ÑÁ¢(¶©‚$£(‚$¤(¢/‚$C¯\j Õ­ç«ðÓ¼œ¥ÓÀ ¡«ð¤ýï "üº!Èýï
«ðü¶%Ú Úýï«ð É
«ð¢/ÔüÅ&Û Ûýï Ü
«ðü¥ÓÀ ÙÅýœpœš˜BDäÃÜ Üýï Ð
«ð,ÿÿ£—¤´¤«ð «ðĵÝ Ýýï Ý ¾
˜«ð$¿ü§%Þ Þýï ²
«ðcntÁÁüû Bß ýï ß
æLæLçLíÁéLˆ¦ —óë@M$TŽ

š«ð$
dstÁœ
$&üé 0 à àýï ú 
œ«ð$ÿ 
œ«»Æ”j»š½Œ‚»¨Œ•ü&üi?ü`J¨©«­ãÉ<Ë/ž×$'¤, ³G,-êb¡É>™3¢ô‘DS­Ö¤
SystemTimeÁT]†U¥
UNIX_EPOCHÁTi ÍA¦HttpDateÁD¾D§¿D°!¡£D9”LGikOQ”´:üò)Œƒü½'»š½Œ©Ì£á á ×
©£ÌÒ©ÿ£ª—¤ª´¤ªª©ª ‹Þ ´Ý»š½ŒÉÌÃ
«<†«ÿ£¬—¤¬´¤¬¬«¬œÒŒ›¸ðt«‚#¼*¦®°±ô³­­¯Œ¿×­­¼¤­­†U†U‡UÉΈUˆA « àìw|–¸ð³µ·¸¹„¬¯¸ð²²
³Œû³³Ìú

â â¸ð â² ²
µ$… œ¹  ã ã¸ð²  ²
 üË % ä ä¸ðòÔ² Õ ²
· à8à üò%å å¸ðòÔ² ü²
¸$à8Ô³»¨Œšœ™ôæ æ¸ð² ò
¹ôÔ¸ð»ëb»üù/çè ç¸ð 臡º º
»$‹¾ ¬‘»»š½Œµ»¨ŒÈü´&üœ?»Æ”廚½Œùüä'ü“{üŠÃƹN4‚ؼ¾Ð…(„¾¼¿k<8̼Á·$AœØ¼ÂtWD#18:')ü‹_<™ðñÂñ¥ÄÅÅÄÓÀ ¡Íìðñ ¤éê“"ðñ éÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åêüÇ"éêðñäݘ"œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ã«ð
ëððñ± §+.),Ü4“ÇÇÍì´ñ š†ñ
å¸=gž¯GÈ  £¼ÆÆ´ñܬÊÊ§à ±†ñ
üÌP¥ÌÍÌÍëìðñ ëÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åì˜"ƒß<”¾Ý Ôëì“"ðñðáüù"ÓÀ ÑÂñÎσ؄ØÏPRËË«ðü¹Míî„¾Ð…†¾ ˜X$]È=„kt• íÂñ îÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åïœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÂñƒØË ÏË
Ï«ððñæ›ÛŒ¨·ÑÒ\4óêîTX4\ÐêÐ…„¾ÑÒk<#ÌÑÔ·$,œØÑÕ=Ñ×Ì4B¦ÑØÞÿTÑÚÍ,YÂÑÛŸG$r¨ÑÝôûflxõÑÞö³G,‡ªÑß÷lØLÉ˸º7ª¬šœ,LŒŽ|~Lfoq[]GIŒ¬¥ááÓÀ ±ýñâãüÇ5«ðÂýñàà
â«ðÌ4â¢/éüä,ýñ«ðÂàà
ã«ðü¨ 5¥ååÓÀ ­ ¨«ð“í«ðýñæ©æ46üä ðñò󄾄¾Ð…†¾ ˜X$]È=„kt• ðýñ ñÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åòõõûf÷¢/ r{…2ÅîsóœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ßߨ+à ¬
ÑøÿËO Ÿä ˆ
ä
æ«ð曜
¢/¾
ü¥7¥èèÓÀ ªª«ð´ëýñéêëìí«¯¬­®êëéíìWYüãƒôõö÷„¾„¾Ð…†¾ ˜X$]È=„kt• ôýñ õÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åö ÷œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ïç ˆç
é«ð曜¢/ºüªšœ­øùúûü„¾„¾Ð…†¾ ˜X$]È=„kt• øýñ ùÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åú û
æLæLçLíÁéLˆ¦ —óë@M$Tü„óç Øç
ê«ðæ›ìç/$Šü’UT•ýþÿ„¾„¾Ð…†¾ ˜X$]È=„kt• ýýñ þÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åÿ‡îç ®ç
ë«ð曺ü¦X„¾„¾Ð…†¾ ˜X$]È=„kt• ýñ ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å‡îç Åç
ì«ðæ›ÑüÀ#ŒÃƒ ƒýñç Õç
í«ð¤åè
œ»ñ
LockResultÁTÛ@ïð¬ü!l-ñ¥òñòÎìüJÍ춆 ;ñÁý(Áýóó)+üD ŒGÉý¶†ññ
óÉý¶†$Yüh*¥õõÓÀ mØòöóöü­²|™Œ°Øò«ðôô
ö«ðœœ»”޻ƔòüÝ(»š½Œ‡üÙ@üÐKûk<Ì÷ù·$œØ÷úL*,üˆOL ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãˆê)?ÈXM´­ ¤
ûæ› œ¹»Æ”Ä»š½ŒØüÃ'»”ø»Æ”Œü÷(»¨Œ¡üó@üº|ü±ñùô‘D—­Öüý׫¤,üÿK†JüÐ…Ë„¾üInstantÁ<ÖóTüƒ…L,ðêüùÓK,†åüúœŒ¥¥—L°À}lÐf„åW„ûDÄÌöóÀcüë8îˆ öó  c cˆ¢cµ
 `£c¢/ `àB¤GS
ˆ‡¡ ò
± ùöóŠŒüôJ»Æ”Ç»š½ŒÛüÆ'ü½2\  öóóTóTôTÔƒõTˆA t( ¼Í¥Š„¾„¾Ð…†¾ ˜X$]È=„kt•žï„¡ˆˆ¢ˆl }.xÏêƒØÓˆ Ž ˆ
$ deadlineÁD• ü… # Š Šö󙈈 ˆ
Š ü¬ R Œ öó Œˈ™ˆˆ À ˆ
 àK,Ç  new_deadlineÁdè üL»Æ”Ô»š½ŒèüÓ'üÊ2, öó¾ô £’ˆ ˆ
Œ$–durÁœÐ $¦¤š»”ܻƔðüÛ(»š½Œ…ü×@üÎK˜šœ AtomicWakerÁ\È Ž AtomicUsizeÁ\ó„Ä®D€¼ÀK†JÖ7$ ýA̺uLÙ¼Ù`bNP=?L0T§ô¼üá;¼õÅ“
ÛÄò4„¼õù¿TäøžD¢œ‘4‘˜˜†J†JK‰Jµ 7ŠJé‡7‹J¤7·0ØQd蜜ˆ:»žž:—ê ïÃÓÔ©Å“øælUðNA‘œÊššžä—ê ïÞ”öœœ¤]¤]V¦]Á‚]üß3ø¤”&”Žœœ  ÌŒ º
ž:HXhù"-e¼õ ü·+Ž Ž¼õŸ ÊŸ
 »¤ä¼õ¢"¢”ÿ$  ¼õ¡ ¡
¢Å“¤¥üÌ B Å“ ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å£ ß £
¤æ›ê üý
"$  Å“£ £
¥$ L¿",Ã"©«¬®¡·ÂÓÔStdErrorÁD6 ¾¦§×I ¤,¦¨Œ! (DD ”™ üOI F Result type often returned from methods that can have hyper `Error`s.Á4¢ ¥ªªÓÀ © Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
«ð£ûY[ ¦žï„¡ˆˆ¢ˆl }.xϾ ÌìÓ„ó üý; 8 Represents errors that can occur handling HTTP streams.Á¹ ú„½
# FormattingÁÎ úüÒL I The `Display` implementation of this type will only print the details ofÁüŸM J this level of error, even though it may have been caused by another errorÁüíC @ and contain that error in its source. To print all the relevantÁü±A > information, including the source chain, using something likeÁüó8 5 `std::error::Report`, or equivalent 3rd party types.Á¬ úü°M J The contents of the formatted error message of this specific `Error` typeÁüþN K is unspecified. **You must not depend on it.** The wording and details mayÁüÍE B change in any version, with the goal of improving error messages.Á úd— # SourceÁ¤ úü¨I F A `hyper::Error` may be caused by another error. To aid in debugging,ÁüòG D those are exposed in `Error::source()` as erased types. While it isÁüºO L possible to check the exact type of the sources, they **can not be dependedÁüŠ N K on**. They may come from private internal dependencies, and are subject toÁÌÙ  change at any moment.Á£û!Ž3 Yð󭬊
¦¬¬žï„¡ˆˆ¢ˆl }.xÏ®®¥;¯¦°Ü¦œÉÅ~Ì/W¦Ó„¤
¦´¥œÉÅ~Ì/W¦¯°
¦®®ñõ¤Ë
¦®®Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ®šTó, £û²³´µ·¸¹º»¼½¾ÀÁÃÄÅÆÇÈÉÊÌÎÏÐÑÒÓÔÕ×ÙÚô¼/ ü„-1 . Returns true if this was an HTTP parse error.Áº- úüÂ-F C This can be caused by a malformed HTTP message, an invalid header,Áü.F C an invalid URI, an invalid HTTP version, or a message head that isÁüØ.F C too large. Use the more specific `is_parse_*` methods to determineÁ¤£/  the exact cause.ÁDÃ/  £û± Ì/ ±
²$Í/ üú3( üš0X U Returns true if this was an HTTP parse error caused by a message that was too large.Á÷0 úüÿ0J G This is triggered when the message head (request line plus headers forÁüÎ1> ; HTTP/1, or header frame for HTTP/2) exceeds the configuredÁü‘2H E [`max_buf_size`](crate::server::conn::http1::Builder::max_buf_size).ÁüÞ2D A It also covers the case where the URI alone exceeds the internalÁ¼§3  maximum URI length.Á»š½ŒÍ3 »Æ”à3 üÌ3' üÃ32 ”4  £û± ”4 ±
³$•4 ü¬6% ü³5] Z Returns true if this was an HTTP parse error caused by an invalid response status code orÁ”•6  reason phrase.Á|³6  £û± Ã6 ±
´$Ä6 üð9) ü7[ X Returns true if this was an HTTP parse error caused by HTTP2 preface sent over an HTTP1Á|ý7 connection.Á8 úü™8I F This can happen when a client sends an HTTP/2 connection preface to aÁüç84 1 server that is only expecting HTTP/1.x requests.Á»”®9 »Æ”Â9 ü­9( »š½Œ×9 ü©9@ ü 9K œ÷9  £û± ‹: ±
µ$Œ: ì°= üè:7 4 Returns true if this error was caused by user code.Á¤; úü¬;G D For example, this can be returned when the user's `Service` returnsÁüø;C @ an error, the user's `Body` stream yields an error, or the userÁüÀ<8 5 sends an unexpected header combination (such as bothÁüý<. + `content-length` and `transfer-encoding`).Á<·= ˜ ˜£û± ¿= ±
$À= üŒ@! üŒ>A > Returns true if this was about a `Request` that was canceled.ÁÒ> úüÚ>C @ This typically happens when a pending request is dropped beforeÁü¢?C @ it can be dispatched to the connection, for example because theÁìê?  connection was not ready.Á\“@  £û± Ÿ@ ±
·$ @ üÖB üí@1 . Returns true if a sender's channel is closed.Á£A úü«AB ? This can occur when the other side of a client or body channelÁüòA? < has been dropped, indicating that the receiver is no longerÁܶB  interested in the data.ÁLÝB š š£û± çB ±
¸$èB ü‘M+ ü¤FJ G Returns true if the connection closed before a message could complete.ÁóF úüûFJ G This means that the supplied IO connection reported EOF (closed) whileÁüÊGG D hyper's HTTP state indicates more of the message (either request orÁü–H' $ response) needed to be transmitted.ÁÂH úüÊH2 / Some cases this could happen (not exhaustive):ÁI úü‰IG D - A request is written on a connection, and the next `read` reportsÁüÕI> ; EOF (perhaps a server just closed an "idle" connection).Áü˜JD A - A message body is only partially receive before the connectionÁ”áJ  reports EOF.ÁüøJI F - A client writes a request to your server, and then closes the writeÁüÆKH E half while waiting for your response. If you need to support this,Áü“L' $ consider enabling [`half_close`].Á¿L úüÇLE B [`half_close`]: crate::server::conn::http1::Builder::half_close()Á¬˜M  £û± ®M ±
¹$¯M ü«Q+ üÉO/ , Returns true if the body write was aborted.Á
 `£c¢/ `àB¤GS
¤‡¡Û ³³ Û
Ü$´³ ± º³ ܳµ £ûÞÅcÞüÕµ8 ص ¥¦§ ¥£û ¦ c cˆ¢cµ
 `£c¢/ `àB¤GS
§‡¡Ý ܵ Ý
Þ$ݵ ± ãµ ¼Á¶ £ûà¿àüß¶5 4â¶ ¨ ¨£ûÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ¨¾ß é¶ ß
à$ê¶ <ä· àÿ£á—¤á´¤ááàá žï„¡ˆˆ¢ˆl }.xϾ ÌìÓ ¾Ô«¸ 4¢¸ £ûãëãä̸ $ϸ Ô÷£ûââ
ãñ¬Ô¸ T³¹ »š½ŒŸ¹ Ì™¹ Ô÷åæçüü¹. »”ι »Æ”â¹ ü͹( üĹ3 ´Šº Ô÷ää
åü‹»1 »Æ”òº Ôìº Ì™» Ô÷ää
æü¹¼4 »”‹¼ »Æ”Ÿ¼ üм( ü¼3 äǼ Ô÷ää
çüͽ$ »š½Œ¹½ ̳½ Ô÷éëéüø½& $û½ üÔ÷èè
éñ¬€¾ ü¶Á0 Ô÷ëëëüíÁ0 $ðÁ ±ýÔ÷êê
ë õÁ ü¿Â4 Ô÷íëíüúÂ4 $ý üýÔ÷ìì
í ‚Ã üÐÃ* Ô÷ïëïüÄ* $„Ä ÇþÔ÷îî
ï ‰Ä üÊÄ/ Ô÷ñëñü€Å/ $ƒÅ ŽÿÔ÷ðð
ñ ˆÅ ôëÅ öúóÅcóüÆ8 “Æ ©ª« ©öú ª c cˆ¢cµ
 `£c¢/ `àB¤GS
«‡¡ò —Æ ò
ó$˜Æ ± žÆ ÔÿÆ öú\Ê"ü*
' Extensions for HTTP messages in Hyper.Á+
úü/h
e This module provides types and utilities that extend the capabilities of HTTP requests and responsesÁü˜f
c in Hyper. Extensions are additional pieces of information or features that can be attached to HTTPÁüÿ7
4 messages via the [`http::Extensions`] map, which isÁü·e
b accessible through methods like [`http::Request::extensions`] and [`http::Response::extensions`].Á
úÔ¡
 # What are extensions?Á¼
úüÀk
h Extensions allow Hyper to associate extra metadata or behaviors with HTTP messages, beyond the standardÁü¬i
f headers and body. These can be used by advanced users and library authors to access protocol-specificÁü–U
R features, track original header casing, handle informational responses, and more.Áì
úôð
 # How to access extensionsÁ
úü“f
c Extensions are stored in the `Extensions` map of a request or response. You can access them using:Áú
ú
 ```rustÁüŠ-
* # let response = http::Response::new(());Áü¸P
M if let Some(ext) = response.extensions().get::<hyper::ext::ReasonPhrase>() {Áä‰
 // use the extensionÁ
¼Œ
•Ä´
ú´¸
 # Extension GroupsÁÏ
úüÓ<
9 The extensions in this module can be grouped as follows:Á
úü” m
j - **HTTP/1 Reason Phrase**: [`ReasonPhrase`] — Access non-canonical reason phrases in HTTP/1 responses.Áü‚
v
s - **Informational Responses**: [`on_informational`] — Register callbacks for 1xx HTTP/1 responses on the client.Áüù
q
n - **Header Case Tracking**: Internal types for tracking the original casing and order of headers as received.Áüë {
x - **HTTP/2 Protocol Extensions**: [`Protocol`] — Access the `:protocol` pseudo-header for Extended CONNECT in HTTP/2.Áç
úüë t
q Some extensions are only available for specific protocols (HTTP/1 or HTTP/2) or use cases (client, server, FFI).Áà
úüä
T
Q See the documentation on each item for details about its usage and requirements.ÁÒ"üîïÍ,
ÂõöûT–
ëõ÷¬L
æ
õùIntoHeaderNameÁtŒ
áõú¡
àõûþdd˜
ט
‹Äˆ
{dò
lnMO<>¤¸
»š½Œ’
»
ü‘$
üˆ/
„¼
õרêÍ, Âüýd ŒŠ ìÿÿüË  ü¢ $ ! Gets the reason phrase as bytes.ÁDÒ ¬ ¬ìÿ ¬þ Û þ
ÿ üÁ 7 üˆ 4 1 Converts a static byte slice to a reason phrase.Á\Î ±¦ìÿþþ
å ©³üÙ$ 8­­ìÿƒòóƒT„ ,‰ ƃü«7  ® ®Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìÿìÿò ¿ 
ƒ8å  ü¬& ìÿòó  ƃü€9  Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìÿìÿò
å  üù% ìÿˆòó  ƃüÌ8  Š‚Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìÿìÿŠ‚ò
å  üÎ$ ìÿŒòóŒ  ŠŠƃü 7  ÂÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìÿìÿÂòŠŠ
Œå  üŠ! ÂŽëŽü²%  ìÿÂ
Žå  üô! ìÿâÌœ  ¯ ¯ìÿ ¯ ¦ 
 ü„ . ƃÅcü¹ B ¼ °±² °ƃ ± c cˆ¢cµ
 `£c¢/ `àB¤GS
²‡¡ À 
 ± Ç üÍ!. ƃü€"% l‰" üäõ­‚¶üð" Dù" ü¡ì­³·üñ%# \ú% ü í­ĸüà'6 Œé' ü³ ³Àè ‚( ñäñJ¼ô†
”Ì,
»”Ž,
ȮӢ,
ü,(
»š½Œ·,
ü‰,@
ü€,K
‘„šœüÏ0P
»”¡0
Ȯӵ0
ü 0(
ü—03
„Ý0
´µ ´‘„ µµ àà¡ãØäÖåfrontÁæbackÁSا=HMW´Â î0

š$ï0
Ð $õ0
üŽ2
»”à1
Ȯә1
üß1(
üÖ13
<œ2
‘„
üª4]
»”ü3
Ȯ4
üû3(
üò33
4¸4
 ‘„ŸÂŸ Â4
Íì² ¿4
á²tø4
œ²$Ç4
Ð $Í4
origÁ$Ö4
8:Tî"¼ Runtime components.ÁúüRO This module provides traits and types that allow hyper to be runtime-agnostic.Áüokh By abstracting over async runtimes, hyper can work with different executors, timers, and IO transports.ÁÛúüß+( The main components in this module are:Áúüjg - **Executors**: Traits for spawning and running futures, enabling integration with any async runtime.Áüú{x - **Timers**: Abstractions for sleeping and scheduling tasks, allowing time-based operations to be runtime-independent.Áüöqn - **IO Transports**: Traits for asynchronous reading and writing, so hyper can work with various IO backends.Áèúüìmj By implementing these traits, you can customize how hyper interacts with your chosen runtime environment.ÁÚúüÞZW To learn more, [check out the runtime guide](https://hyper.rs/guides/1/init/runtime/).Áö"Ÿ ÝûŸG$ñ¨ôòG<÷²õûfl€õö³G,ª÷…L,­êùÓK,´åú  Trait aliases.Á úüK H Traits in this module ease setting bounds and are usually automaticallyÁüc. + implemented by implementing another trait.ÁΞ¨ª²Ûõ× ¤, ¡ MaybeUninitÁ\ ÑÛ ¢DerefMutÁD7 ö! £Ð…O „¾ ¤k<d Ì ¦·$m œØ §D ¬ u”- ]lE MLX >@-/t ôÚ  Reads bytes from a source.Áù úüýN K This trait is similar to `std::io::Read`, but supports asynchronous reads.ÁÌ úÌÐ  # Implementing `Read`Áê úüîL I Implementations should read data into the provided [`ReadBufCursor`] andÁü»L I advance the cursor to indicate how many bytes were written. The simplestÁüˆ ? < and safest approach is to use [`ReadBufCursor::put_slice`]:ÁÈ ú•ÄüÔ ) & use hyper::rt::{Read, ReadBufCursor};Á´þ  use std::pin::Pin;Áü•
# use std::task::{Context, Poll};Á„¹
use std::io;ÁÊ
ú¬Î
 struct MyReader {Á´ä
 data: Vec<u8>,ÁÄû
 position: usize,Á,” ¼Œš úäž  impl Read for MyReader {Á¬»  fn poll_read(ÁüÑ % " mut self: Pin<&mut Self>,Áü÷ "  _cx: &mut Context<'_>,Áüš ' $ mut buf: ReadBufCursor<'_>,Áü * ' ) -> Poll<Result<(), io::Error>> {Áüí = : let remaining_data = &self.data[self.position..];Áü«
* ' if remaining_data.is_empty() {ÁüÖ
K H // No more data to read, signal EOF by returning Ok withoutÁü¢' $ // advancing the bufferÁüÊ+ ( return Poll::Ready(Ok(()));Á
 úüˆ4 1 // Calculate how many bytes we can writeÁü½D A let to_copy = remaining_data.len().min(buf.remaining());Áü‚G D // Use put_slice to safely copy data and advance the cursorÁüÊ6 3 buf.put_slice(&remaining_data[..to_copy]);Á úü…% " self.position += to_copy;Áü«  Poll::Ready(Ok(()))Á  ¼Œ •Äã úüçJ G For more advanced use cases where you need direct access to the bufferÁü²H E (e.g., when interfacing with APIs that write directly to a pointer),ÁüûS P you can use the unsafe [`ReadBufCursor::as_mut`] and [`ReadBufCursor::advance`]ÁüÏ= : methods. See their documentation for safety requirements.Á$— ¨¨Áýü˜ ¨ÁýÁý ©©©ü ü¢* ' Attempts to read bytes into the `buf`.ÁÑ úüÙD A On success, returns `Poll::Ready(Ok(()))` and places data in theÁü¢H E unfilled portion of `buf`. If no data was read (`buf.remaining()` isÁüï5 2 unchanged), it implies that EOF has been reached.Á© úü±K H If no data is available for reading, the method returns `Poll::Pending`ÁüE B and arranges for the current task (via `cx.waker()`) to receive aÁüË? < notification when the object becomes readable or is closed.ÁL ·¸¹º„¾„¾Ð…†¾ ˜X$]È=„kt• ·Éý ¸ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å¹õõûf÷¢/ r{…2Åîsº‡î¨ ¯ ¨
©Éý æ›Ã ¢/á |— ü§  Write bytes asynchronously.ÁÇ úüËK H This trait is similar to `std::io::Write`, but for asynchronous writes.Á ªªÁýü—¯ ªÁýÁý «¬­®¯«¬­®¯­«¯®¬üõŒ ü­; 8 Attempt to write bytes from `buf` into the destination.Áí úüõA > On success, returns `Poll::Ready(Ok(num_bytes_written)))`. IfÁü»K H successful, it must be guaranteed that `n <= buf.len()`. A return valueÁü‹G D of `0` means that the underlying object is no longer able to acceptÁü×0 - bytes, or that the provided buffer is empty.ÁŒ úü”> ; If the object is not ready for writing, the method returnsÁü×K H `Poll::Pending` and arranges for the current task (via `cx.waker()`) toÁü§I F receive a notification when the object becomes writable or is closed.ÁTø »¼½¾„¾„¾Ð…†¾ ˜X$]È=„kt• »Éý ¼ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å½ ¾„óª  ª
«Éý 曪 ¢/È üÇ"^ ü‡ !  Attempts to flush the object.Á­ úüµ . + On success, returns `Poll::Ready(Ok(()))`.Áè úüð @ = If flushing cannot immediately complete, this method returnsÁüµ!K ÓÆü…"= : receive a notification when the object can make progress.ÁTÊ" ¿ÀÁ„¾„¾Ð…†¾ ˜X$]È=„kt• ¿Éý ÀÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åÁ‡îª ß" ª
¬Éý$Õ" æ›ë" üÖ#x ü«#& # Attempts to shut down this writer.ÁlÙ# ÂÃÄ„¾„¾Ð…†¾ ˜X$]È=„kt• ÂÉý ÃÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åÄ‡îª ú# ª
­Éý$ð# 曎$ üó%# üÔ$F C Returns whether this writer has an efficient `poll_write_vectored`ÁœŸ%  implementation.Á·% úü¿%/ , The default implementation returns `false`.ÁŒö% Å ÅÉýª
æLæLçLíÁéLˆ¦ —óë@M$TÊ„óª ¦' ª
¯Éý$œ' 曺' ç/$Ø' ã( ¯ÿ£°—¤°´¤°°¯°Éý  æLæLçLíÁéLˆ¦ —óë@M$T“) ¯ÿ£±—¤±´¤±±¯±Éýר¢è´ñ0 üÈ)P M A wrapper around a byte buffer that is incrementally filled and initialized.Á™* úü*J G This type is a sort of "double cursor". It tracks three regions in theÁüè*K H buffer: a region at the beginning of the buffer that has been logicallyÁü´+N K filled with data, a region that has been initialized at some point but notÁüƒ,L I yet logically filled, and a region at the end that may be uninitialized.ÁüÐ,M J The filled region is guaranteed to be a subset of the initialized region.Áž- úü¢-@ = In summary, the contents of the buffer can be visualized as:Áã- ú|ç- ```not_rustÁü÷-) & [ capacity ]Áü¡.) & [ filled | unfilled ]ÁüË.) & [ initialized | uninitialized ]Á<õ. •Äý. úü/N K It is undefined behavior to de-initialize any bytes from the uninitializedÁüÐ/N K region, since it is merely unknown whether this region is uninitialized orÁüŸ0Q N not, and if part of it turns out to be initialized, it must stay initialized.Á<ü0 H³³²²òG´@ µ’H  H y–¶¹nºýçHy–¶¹nºýç´µ„1 ôŽ1 Ž1  ²² H
ÑÛÑÛŧÓÛÆHÝÔÛ»ÝÍõƒ«%9l²1 4²1  ²²\Å1 $Å1  ²²ÔÖ? ±H¸¸²²òG´@ µ’H  H y–¶¹nºýç±H¹º»¼¾¿,Û? üÇ@( ü÷?= : Create a new `ReadBuf` with a slice of initialized bytes.ÁÎ@  ±H†‹å··
¹±H@Ò@ üÀC8 üîB? < Create a new `ReadBuf` with a slice of uninitialized bytes.Á4ÇC  ±H÷ã‹å··
º±H@ÎC ì°E üÜDA > Get a slice of the buffer that has been filled in with bytes.Á4·E Ë Ë‹å Ë· ¾E ·
»±H$¿E ü×GE üG7 4 Get a cursor to the unfilled portion of the buffer.ÁDÞG ½ ½‹åõõûf÷¢/ r{…2Åîs½·<çG ·
¼±H$ýG äÎP LÑP  Ì Ì‹å· ÛP ·
¾±H$ÜP ܬQ D¯Q  Í Í‹å· ¸Q ·
¿±H$¹Q üêQ 8ÎÎÁÀcÁüR8 “R ÏÐÑ Ï Ð c cˆ¢cµ
 `£c¢/ `àB¤GS
ч¡À —R À
Á8$˜R ± žR ´T 8ÒÒõõûf÷¢/ r{…2ÅîsÄÅÆüíU9 ü¬T+ ( Access the unfilled part of the buffer.ÁÜT údäT # SafetyÁõT úüýTA > The caller must not uninitialize any bytes that may have beenÁ¼ÃU  initialized before.Á4ûU Ó Ó×î Ó÷ã ‚V Â
Ã8$‡V üX* üáV- * Advance the `filled` cursor by `n` bytes.Á“W úd›W æî¬W úü´WH E The caller must take care that `n` more bytes have been initialized.Á<X Ô Ô×î ¥X Â
Ä8$ªX ¹ °X ü·[ üÐYD A Returns the number of bytes that can be written from the currentÁü™Z4 1 position until the end of the buffer is reached.ÁÒZ úüÚZJ G This value is equal to the length of the slice returned by `as_mut()`.ÁL¾[ Õ Õ×î È[ Â
Å8$É[ üê]' ü‚\@ = Transfer bytes into `self` from `src` and advance the cursorÁüÇ\# by the number of bytes written.Áï\ úd÷\ # PanicsÁˆ] úü]G D `self` must have enough remaining capacity to contain all of `src`.ÁLñ] Ö× Ö×î × û] Â
Æ8$€^ srcÁ†^ ìëb „øb  ‰c ˆe  c c *c  •c …e 8 Ÿc 8ê5L¢c  «c ¡d 8¹c 8$½c & Ác 8Ð…Ãc  Æc  Çc 8Èc 8$Ìc  Ðc $ Ñc 8æ›ßc & ác  ãc 8äc 8k<èc  ïc :8ðc  òc $ óc 8¢/d & „d 8ûfl†d  “d :8”d  d $ —d (£d 8·$¦d  ªd 8À«d '®d 8Ì4°d '²d 8Í4´d  ºd  »d ¼d ½d  Àd ÿd 8Ð…Îd 'Ñd 8æ Ód  Öd âd  ×d 8Ød
Üd 
Ýd 8$Þd  ãd 8ê5Läd  íd õd 8æ›îd $ ðd 8¢/òd % †e ü‹e. ¥ÉÉÎì«ð e ¤ë$œe ´ë,£e á…û©û#%üØe. 8Ø¥ËØËÎ춆 Ýe ¨¶†$ée “í¶†,ðe ±†ü©ü46ü¥fC ¡ÍÍÍìø† ªf ö!ø†DÊf ¨ø†ê!$ãf ĆΩÎ:<üïfŒ Lòf ÙÚÛÜ„¾„¾Ð…†¾ ˜X$]È=„kt• ÙĆ ÚÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åÛõõûf÷¢/ r{…2Åîs܇îÌ g Ì
Îø†$…g 曣g ¢/Ág ô¹h ŒÆh  Øh §p  Þh ßh *áh  äh ¤p B8 îh 8ˆ6Tñh  ûh åi 8‰i 8$i & i 8Ð…“i  –i  —i 8˜i 8$œi   i $ ¡i 8曯i & ±i  ³i 8´i 8k<¸i  ¿i :8Ài  Âi $ Ãi 8¢/Ñi & Ôi  Öi  ×i Úi 8ÈØi $ Ûi (çi 8·$êi  îi 8Àïi 'òi 8Ì4ôi 'öi 8Í4øi  þi 8¬,ÿi „j  ‡j Çj 8Ð…•j '˜j 8æ šj  j ©j  žj 8Ÿj
£j 
¤j 8$¥j  ªj 8ˆ6T«j  µj ½j 8æ›¶j $ ¸j 8¢/ºj 8 Òj 8š6œÕj  èj åk 8öj 8$új & þj 8Ð…€k  ƒk  „k 8…k 8$‰k  k $ Žk 8曜k & žk   k 8¡k 8k<¥k  ¬k :8­k  ¯k $ °k 8ç/$¾k & Âk  Äk  Åk Úk 8ÀÆk 'Ék 8Ì4Ëk 'Ík 8íÁ<Ïk  Ök :8×k  Ùk $ Ûk (çk 8·$êk  îk 8Àïk 'òk 8Ì4ôk 'ök 8Í4øk  þk 8¬,ÿk „l  ‡l Ñl 8Ð…•l '˜l 8æ šl  l ©l  žl 8Ÿl
£l 
¤l 8$¥l  ªl 8š6œ«l  ¾l Çl 8替l $ Ál 8ç/$Ãl 8 Ül 8Ü6Œßl  ðl öl  ñl 8$òl (øl 8º$ûl  €m ³m  Žm •m 
m 
m 8$m  m 8Ü6Œ—m  ¨m ©m 8 ¾m 8µ6TÁm  Ëm úm 8Ìm 8$Ðm & Ôm 8Ð…Öm  Ùm  Úm 8Ûm 8$ßm 
æLæLçLíÁéLˆ¦ —óë@M$Tæ„óÔ …t Ô
×ø†$ûs æ›™t ç/$·t üÆu# ŒÉu ç çĆÔ Ûu Ô
Øø†$Üu üœvV TŸv èéꄾ„¾Ð…†¾ ˜X$]È=„kt• èĆ éÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åê‡îÔ ´v Ô
Ùø†$ªv æ›Àv ü®wY l±w ëì턾„¾Ð…†¾ ˜X$]È=„kt• ëĆ ìÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åí‡îÔ Éw Ô
Úø†$¿w æ›Õw ü©yN „¬y  î„¾„¾Ð…†¾ ˜X$]È=„kt• îĆ„¾„¾Ð…†¾ ˜X$]È=„kt• îåÿ¡ÜÜ Óy ½ÿ ½y ÎÿDÀy
Ûø†ÿ
Êy žåêñTypeIdÁ4Þ !ˆ¤Ýß¹N4ò !‚ØÝàÐ…ƒ
!„¾Ýáô‘D“
!­ÖÝãÔƒ<
!óTÝäÎ !\Ù !utê !eDþ !TüÎ B!DF13|Ü
!ü«
0!- A timer which provides timer-like functions.Á
!ååÁýüÜ
Š!åÁýÁý æçèéæçèéèæçéü¬;!üò
5!2 Return a future that resolves in `duration` time.Á,¯!ï ïÉýè’ˈå µ!å
æÉý!durationÁD¼!ü¢@!üí0!- Return a future that resolves at `deadline`.Á\¥!ð ðÉý™ˆˈå ±!å
çÉý!öˆ!Äê!üè6!3 Return an `Instant` representing the current time.Á£!úü«:!7 The default implementation returns [`Instant::now()`].Áí!ñ ñÉý™ˆå ñ!å
èÉý!üäG!ü§8!5 Reset a future to resolve at `new_deadline` instead.Á,ç!òó òÉý óˈ™ˆå í!å
éÉý!àK,ô!Ίd•!üŒ2!üè#! A future returned by a `Timer`.Á,!êêÁýüŒ!ÌìÉý$! Éý!‚ØÉýœ«!ÉýƒØ!êÁý_Á¬RÒ¬Hâ¬=ó¬0Áý}Á¬pÒ¬fâ¬[ó¬ëëü¨R!üØK!H This method is private and can not be implemented by downstream crates.Á!!ô ôÉýòòçL^¡øÃ̽ˆ¤ˆ¤³¢‰¤Èò;ž§÷Eá†ê µ!êÉý!
ëÉý! ¼!t§!¼‰íïü½A!üŠ.!+ Check whether the type is the same as `T`.ÁÄ!õ õ¼‰ì¥îî Ê!ìÓÀ Ç!ê«ð!«ð!
í«ð!/1ü”m!üÐ?!< Downcast a pinned `&mut Sleep` object to its original type.Á„›!ö„¾„¾Ð…†¾ ˜X$]È=„kt• ö¼‰Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ„¾„¾Ð…†¾ ˜X$]È=„kt• ö«ðì¥ðð ¹!ìÓÀ ¬!¶±!Ʊ!
ï«ð!$&!!ÝòŒù!4„!ý®^¡øÃ̽¿GÂG³G¶G§GªG›GžG\Ÿ“G–G‡GŠG¼³ ܽ An executor of futures.ÁÙúüÝda This trait allows Hyper to abstract over async runtimes. Implement this trait for your own type.ÁÂú
# ExampleÁÔú•Äôà # use hyper::rt::Executor;Áôÿ # use std::future::Future;Á¤ž  #[derive(Clone)]Á̳  struct TokioExecutor;ÁÍ úüÑ )& impl<F> Executor<F> for TokioExecutorÁ whereÁü…
# F: Future + Send + 'static,Áü©
" F::Output: Send + 'static,Á
üÒ
&# fn execute(&self, future: F) {Áüù
! tokio::spawn(future);ÁL ¶¶ ¼Œ •Ä û­MüüûÁýü³ rÍì­MÆ ûÁý,Áýýý*,ä‡ üÑ 1. Place the future into the executor to be run.Á<Š ÷ ÷Éý¾»û û
ýÉý¾»$“ futÁ |ú"Ô" Asynchronous Services.Á"úü9"6 A [`Service`] is a trait representing an asynchronousÁüY8"5 function of a request to a response. It's similar toÁü’3"0 `async fn(Request) -> Result<Response, Error>`.ÁÆ"úüÊI"F The argument and return value isn't strictly required to be for HTTP.Áü”J"G Therefore, hyper uses several "trait aliases" to reduce clutter aroundÁ´ß" bounds. These are:Áö"úüúE"B - `HttpService`: This is blanketly implemented for all types thatÁüÀL"I implement `Service<http::Request<B1>, Response = http::Response<B2>>`.Á"úœ‘" # `HttpService`Á¥"úü©L"I In hyper, especially in the server setting, a `Service` is usually boundÁüöN"K to a single connection. It defines how to respond to **all** requests thatÁäÅ" connection will receive.Áâ"úüæF"C The helper [`service_fn`] should be sufficient for most cases, butÁü­V"S if you need to implement `Service` for a type manually, you can follow the exampleÁü„ " in `service_struct_impl.rs`.Á<#ÿœÇ€N\Ü"ïØO<€"žðàRT" Ññ""þ†—D#¾ÿ¹N44#‚Øÿú_$N#)ÿ#ØO<q#žÿƒçO<†#ôÿöOD#ˆÿ Œ#ƒœ'#tŒA#düX #T,~#EG13üÿ7#ü›>#; An asynchronous function from [`Request`] to [`Response`].ÁÚ#úüÞ_#\ This is a *sealed* trait, meaning that it can not be implemented directly. Rather, it is anÁü¾_#\ alias for [`Service`]s that accept a [`Request`] and return a [`Future`] that resolves to aÁüžH#E [`Response`]. External callers should implement [`Service`] instead.Áç#úüë]#Z Rather than being generic over the request and response, this trait is generic across theÁüÉ+#( request [`Body`] and response [`Body`].Áõ#úüùW#T See the crate-level [`service`][crate::service] documentation for more information.ÁÑ#úüÕ)#& See [`Service`] for more information.Á\‰#“NˆˆÁýüÿœ#šÉýÁмŸ#ÍìÁŠ<•#Áý?‚Î/ÁýK‚Î;‰ŠŒŠŒÍìÉýÁŠœì#)èÎ#àÎüÎÍìÉýÁŠŠüŽ
2#æ Ï®šüš
%#˜ÏµÏÍìÉýÁŠüû
K#‚ØßÏüˆ =#ßσØÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆˆöOж©Ú'“q8‚ õ™èΠÏü 5#×Ͻôϱ†ÐŒ ”ì#ü½*#' The [`Body`] body of the [`Response`].Á<ñ#üŽ
1#ü…:#7 The error type that can occur within this [`Service`].ÁÄ#úüÌZ#W Note: Returning an `Error` to a hyper server, the behavior depends on the protocol. InÁü«\#Y most cases, hyper will cause the connection to be abruptly aborted. In most cases, it isÁüŒ @#= better to return a `Response` with a 4xx or 5xx status code.ÁÑ #úüÙ 0#- See [`Service::Error`] for more information.Á,“
#üû
J#üÆ
0#- The [`Future`] returned by this [`Service`].Á4€ #üß :# # #ø øÉýÇŠßÏ ç #
ŒÉýÁŠ #reqÁò ¤#¥ŽÜNæNŽ«ðôôçOö¶©¦÷Ú'¦Œ4ñŠ|媇 ˆˆöOж©Ú'“q8‚ õ™æN¼å #Í쪇¥ #ÍìøØ© #ž«ðû×üÐ -#ÓÀ ¢ #)øØ$‡
#æ«ðûס®šü›
%#«ðŠŒWYŽ
#<Í
#øØ
#,å
#×Ù
#4€#«ðû×¢ü™4#$œ#ù ù«ðû׫𪇠¡#
«ðª‡øØ#¬Ö¬#üúr#¥ÜNæN˜˜ó×¼Å#‚Ù#“Ù#¤Ùü°-#ÓÀ ÿ#ÁÙ#«ð68;=##ÿšœƒ#4#š¥šÁý´ƒ#Óý #šÁý Áý&!#"<´"þž¹N4$‚Øœœ$Ô
$ü>$; An asynchronous function from a `Request` to a `Response`.ÁY$úü]I$F The `Service` trait is a simplified interface making it easy to writeÁü§J$G network applications in a modular and reusable way, decoupled from theÁÄò$ underlying protocol.Á$ú$
# FunctionalÁ $úü¤F$C A `Service` is a function of a `Request`. It immediately returns aÁüëE$B [`Future`] representing the eventual completion of processing theÁü±H$E request. The actual request processing may happen at any time in theÁüúK$H future, on any thread or executor. The processing may depend on callingÁüÆN$K other services. At some point in the future, the processing will complete,Áü•>$; and the [`Future`] will resolve to a response or an error.ÁÔ$úüØP$M At a high level, the `Service::call` function represents an RPC request. TheÁü©0$- `Service` value can be a server or a client.ÁÚ$ú$ # UtilitiesÁî$úüòN$K The [`hyper-util`][util] crate provides facilities to bridge this trait toÁüÁH$E other libraries, such as [`tower`][tower], which might provide theirÁÜŠ$ own `Service` variants.Á¦$úüªC$@ See [`hyper_util::service`][util-service] for more information.Áî$úüò"$ [tower]: https://docs.rs/towerÁü• &$# [util]: https://docs.rs/hyper-utilÁü¼ S$P [util-service]: https://docs.rs/hyper-util/latest/hyper_util/service/index.htmlÁ
$žçOŸŸžÁýü
û $ÍìÒ‡
$žÁý+Áý¡¢£ ¡¢£ÍìÉýÒ‡ 
$­ëÍìÉýÒ‡¡
$ÐëÍìÉýÒ‡¢ü›B$‚Øûëü¨4$ûëƒØÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
µëØëü¯,$óëìv¢ì£%(
$ü±
#$ Responses given by the service.ÁDÞ
$žž
$üí
#$ Errors produced by the service.Á $úü M$J Note: Returning an `Error` to a hyper server, the behavior depends on theÁüï T$Q protocol. In most cases, hyper will cause the connection to be abruptly aborted.ÁüÈ a$^ It will abort the request however the protocol allows, either with some sort of `RST_STREAM`,Áü®
4$1 or killing the connection if that doesn't exist.Á,ì
$žžü›A$ôø
$ The future response value.Á4 $žžüÜ-$üã?$< Process the request and return the response asynchronously.Áü§8$5 `call` takes `&self` instead of `mut &self` because:Áüä'$$ - It prepares the way for async fn,Áü\$Y since then the future only borrows `&self`, and thus a Service can concurrently handleÁüñ,$) multiple outstanding requests at once.Áü¢6$3 - It's clearer that Services can likely be cloned.ÁüÝF$C - To share state across clones, you generally need `Arc<Mutex<_>>`Áü¨U$R That means you're not really using the `&mut self` and could do with a `&self`.Áü‚U$R The discussion on this is here: <https://github.com/hyperium/hyper/issues/3040>Á$ß$ú úÉýÒ‡ûëž ä$ž
£ÉýÒ‡$¬ÖëF$8ûçO¥¤¦û¥¦ïê<’$Îìˇ $žˇÒ‡„ž$Ƈ§¨©ª ¡¢£ªMOIK$Dß$¤¤ˇÒ‡ $,€$¤¤ˇÒ‡¡\–$4›$¤¤ˇÒ‡¢üÂ,$$Å$ü üƇÒ‡ƇÒ‡¢¤ Ê$¤
ª8Ò‡ˇ$¬ÖÑ$ü•J$8ýçO¬¤­­¬ýïê$³ø £$Äø„¦$߇®¯°± ¡¢£±8:=?$Dë$««¬ùT‡$,Œ$««Ñù$4§$««öùüÎ,$$Ñ$þ þ߇Ò‡߇Ò‡¢« Ö$«
±8Ò‡ˇ$¬ÖÝ$ü¡G$çO³¤´³´Í콈$Î쳈 ¯$ž³ˆ½ˆ„²$ô‡µ·¸ ¡¢£¸MOIK$Dô$²²³ˆ½ˆ T$,•$²²³ˆ½ˆ¡$4°$²²³ˆ½ˆ¢ü×,$$Ú$ÿ ÿô‡½ˆô‡½ˆ¢² ß$²
¸½ˆ³ˆ$¬Öæ$üªO$çOº¤»º»‡þ$˜þ ¸$©þ„»$ʈ¼½¾¿ ¡¢£¿8:=?l€$D…$¹¹‘ÿ$,¦$¹¹¶ÿ$4Á$¹¹Ûÿüè,$$ë$ ʈ½ˆʈ½ˆ¢¹ ð$¹
¿½ˆ³ˆ$¬Ö÷$ü»R$çOÁ¤ÂÂÁ‡þ$˜þ É$©þ„Ì$ª‰ÃÄÅÆ ¡¢£Æ8:=?l”$D™$ÀÀ‘ÿ$,º$ÀÀ¶ÿ$4Õ$ÀÀÛÿüü,$$ÿ$ ª‰½ˆª‰½ˆ¢À $À
ƽˆ³ˆ$…$¬Ö$D½""þÑÕ†—D%¾ÇÈ×,%¤,ÇɹN4B%‚ØÇÊ PhantomDataÁ\[%Ç˽…ÇËú_$z%)ÇÌ#ØO<%žÇÍçO<²%ôÇÏöOD»%ˆÇÐ Œ%ÍD'%¾œ5%¯ÄN%”Œm%oü„ %`,ª%QS=?ü²d%üÇ'%$ Create a `Service` from a function.Áï%ú%”¶%ú<…%•Ĭ% use bytes::Bytes;Áü£2%/ use hyper::{body, Request, Response, Version};ÁìÖ% use http_body_util::Full;Áüô#% use hyper::service::service_fn;Á˜%úüœH%E let service = service_fn(|req: Request<body::Incoming>| async move {Áüå.%+ if req.version() == Version::HTTP_11 {Áü”A%> Ok(Response::new(Full::<Bytes>::from("Hello World")))Á„Ö%
} else {Áüç=%: // Note: it's usually better to return a ResponseÁü¥@%= // with an appropriate StatusCode instead of an Err.Áüæ1%. Err("not HTTP/1.1, abort connection")ÁL˜%¶¶% });Á%•ÄT
%%)§”
%ƒŠàáâã ¡¢£ãuwY[ÍÏÉËÅÇ
%Dß
%ÚÚì“ %, %ÚÚ­” %4¡ %ÚÚˆ“ü´ 5%$· % ƒŠÇŠƒŠÇŠ¢Ú ¼ %Ú
ã´ñÁŠˆ“§”­” %¬Öà %ü‹ )%壿æå§à %Ꭰ%çÀcç "ü» 8%¾ %ƒ ƒ  c cˆ¢cµ
 `£c¢/ `àB¤GS
‡¡ä  %ä
ç´ñË‹ %± É %ü¯
8%é£êéê§à ´
%Ꭰ·
%Ø´ñ
%ëÙë+-02¼î
%,ñ
% è ÷
%è
ë´ñË‹
%üí1%í£îíî§à ò%Ꭰõ%Š ´ñ% "%'¼Ð"_+´ñ"T+´‘"I+|#
 HTTP Upgrades.Á
úüH
E This module deals with managing [HTTP Upgrades][mdn] in hyper. SinceÁü`N
K several concepts in HTTP allow for first talking HTTP, and then convertingÁü¯J
G to a different protocol, this module conflates them into a single API.Á”ú
 Those include:Á
ú¼‘
 - HTTP/1.1 UpgradesÁ¤©
 - HTTP `CONNECT`Á¾
úüÂM
J You are responsible for any other pre-requisites to establish an upgrade,ÁüO
L such as sending the appropriate headers, methods, and status codes. You canÁüàK
H then use [`on`][] to grab a `Future` which will resolve to the upgradedÁü¬8
5 connection object, or an error if the upgrade fails.Áå
úüéW
T [mdn]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Protocol_upgrade_mechanismÁÁ
ú
# ClientÁÒ
úüÖO
L Sending an HTTP upgrade from the [`client`](super::client) involves settingÁü¦N
K either the appropriate method, if wanting to `CONNECT`, or headers such asÁüõJ
G `Upgrade` and `Connection`, on the `http::Request`. Once receiving theÁüÀO
L `http::Response` back, you must check for the specific information that theÁüP
M upgrade is agreed upon by the server (such as a `101` status code), and thenÁüá)
& get the `Future` from the `Response`.Á
úd
# ServerÁœ
úü  M
J Receiving upgrade requests in a server requires you to check the relevantÁüî O
L headers in a `Request`, and if an upgrade should be done, you then send theÁü¾
M
J corresponding headers in a response. To then wait for hyper to finish theÁüŒ J
G upgrade, you call `on()` with the `Request`, and then can spawn a taskÁ„×
awaiting it.Áè
ú
”¶ú
úüþ C
@ See [this example][example] showing how upgrades work with bothÁÄÂ
 Clients and Servers.ÁÛ
úüß Q
N [example]: https://github.com/hyperium/hyper/blob/master/examples/upgrades.rsÁ<“#¬µ³¢
ˆ¤òó†—
¾òô×ô
¤,òõ¹N4Š
‚ØòöÌ4
¦ò÷Ð…­
„¾òøKÂ
†Jòú¤
µ>òûk<ß
Ìòý·
œØòþŸG$€
¨òôûfl†
õòö³G,•
ªò÷Í
ÂòƒÂ
èSòÒ\4á
êòî‹7l‚
ñò„¶
}ŒÌ
m
_œý
Q<
B
3
%(
 üþLô
îðÙÛÄÆd¡
²¤³
¢ÌÎ
“üí"
œÕ
ü’
 An upgraded HTTP connection.Á³
úü·E
B This type holds a trait object internally of the original IO thatÁüýF
C was used to speak HTTP before the upgrade. It can be used directly矀/
, as a [`Read`] or [`Write`] for convenience.Áô
úüøH
E Alternatively, if the exact type is known, this can be deconstructedÁœÁ
 into its parts.Á
âŒ:#Ï@¬Ë§ˆôï
ï
òêêÒ\ìè\Ñí˜;Ñÿ×»"hY`žï„¡ˆˆ¢ˆl }.xϬÌìÓüÖ5
üü2
/ Gets a pending HTTP upgrade from this message.Á¯
úü³.
+ This can be called on the following types:Áâ
úÄæ
 - `http::Request<B>`ÁÌÿ
 - `http::Response<B>`Áì™
 - `&mut http::Request<B>`Áô·
 - `&mut http::Response<B>`ÁÝ
«ðî‹¥ŠŠÓÀ à
·«ð”ã
«ðmsgÁ÷
(*Ì•
»”¹
»Æ”Í
ü¸(
»š½Œê
»¨Œý
üé&
ü¯c
ü¦n

“ªûe£; {5Œüµ,
µ
òß]ß]‘*á]˜;èS„ÖàßâÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
⌣ûüÕ/
»”ù
Ȯ
üø(
»š½Œª
»¨Œ½
ü©&
üïc
üæn

“ªî‹
lÂ!
âŒüÔ"p
»”í!
Ȯ"
üì!(
»š½Œ¢"
Ȭε"
ü¡"&
üß!n
üÖ!y
â"
«ðÂ⌎¥ŽÓÀ æ"
¤ë$ž#
§ð,¥#
´ë,­#
äÀ$µ#
Ʊ<¼#
«ðÌ4é"
ÚhDð"
EGüâ%R
ü±$C
@ Tries to downcast the internal trait object to the type passed.Áù$
úü%C
@ On success, returns the downcasted parts. On error, returns theÁ¤É%
 `Upgraded` back.ÁDé%
âŒÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£ŒâŒŽ¥ŽÓÀ ò%
¤ë$õ%
§ð,ü%
´ë,„&
Ʊ<Œ&
«ð$•&
46´î(
〈ü‹)‹
LŽ)
ˆŠ„¾„¾Ð…†¾ ˜X$]È=„kt• ⌠ˆÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾åõõûf÷¢/ r{…2ÅîsŠ‡î ¯)

$¥)
æ›Ã)
¢/á)
¼Ô*
âŒ˜š«¯¬­®š˜üò*ƒ
Tõ*
ŒŽ„¾„¾Ð…†¾ ˜X$]È=„kt• ⌠ŒÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å Ž„ó —+

$+
曫+
¢/É+
ü¶,š
œ¹,
„¾„¾Ð…†¾ ˜X$]È=„kt• ⌠ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å 
æLæLçLíÁéLˆ¦ —óë@M$T„ó ä,

$Ú,
æ›ø,
ç/$-
ü›.U
Tž.
„¾„¾Ð…†¾ ˜X$]È=„kt• ⌠ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å‡î ·.

˜$­.
æ›Ã.
ü¬/X
l¯/
˜„¾„¾Ð…†¾ ˜X$]È=„kt• ⌠˜ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å‡î Ë/

$Á/
æ›×/
üÃ0#
ή0
š šâŒ Ø0

š$Ù0
ä–1
⌜Àcœü¹18
¼1
œ ⌠œ c cˆ¢cµ
 `£c¢/ `àB¤GS
‡¡ À1

œ$Á1
± Ç1
tÈ2
ŸäÝ2
$ë2
î‹
žüö3$
»”´3
»Æ”È3
ü³3(
»š½ŒÝ3
ü¯3@
ü¦3K
<„4
ž žî‹ Œ4

Ÿ$4
ÌÀ4
î‹¡¢ƒØ„Ø¢\à4
4å4
  ¸ºü“5I
$5
Ÿ ¡„¾„¾Ð…†¾ ˜X$]È=„kt• Ÿî‹  ÌÌkΞ:¸ÏÄ͸ÐßC¸Ñ¬n¸Òù͸f'EwÚ]¾å¡œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãؠ ¥5
 
¢$5
æ›±5
,ð6
¢ÿ££—¤£´¤££¢£Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¸ºë]ë]ì] RecvErrorÁí]ˆèS 8‚4Ô½.Ÿºìî9
î‹¥Àc¥ü’:8
•:
¢£¤ ¢î‹ £ c cˆ¢cµ
 `£c¢/ `àB¤GS
¤‡¡¤ ™:
¤
¥$š:
±  :
dŽ<
»”³;
Ȯӂ;
ü²;(
»š½Œä;
»¨Œ÷;
üã;&
ü©;b
ü ;m
“ª§¨ü¡</
<¯<
“ªâŒ¦¦
§$·<
upgradedÁD½<
Ô½>
»š½Œ»=
̵=
4Ë>
“ª¦¦
¨$Ò>
ü—B%
ĪÅcªüÃB8
ÆB
¥¦§ ¥Ä ¦ c cˆ¢cµ
 `£c¢/ `àB¤GS
§‡¡© ÊB
©
ª$ËB
± ÑB
üÁC!
ÄüÿC3
D
¬¬ÁýüÿC„
¨Éý$”D
ªÉý,D
“íÉý,£D
å¯<«D
¬ÁýSÒÝGâÝ=òÝ2å¯0ÁýqÒÝeâÝ[òÝP寭­ü¹D#
|¼D
¨ ¨Éýž¯¬ ÌD
¬
­Éý$ÍD
ü…E0
¥¯¯ÓÀ ŠE
¤ë$E
§ð,”E
´ë,œE
Ʊ<¤E
«ð(*”ºE
͵±³üÓE#
TÖE
ò© ©͵°¥²² èE
°ÓÀ áE
¬«ðäE
±«ð$éE
$&üËFH
„ÎF
ò޵Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
á…޵°¥´´°ÓÀ ßF
ŒáâF
³«ð$æF
T¿I
4ÃI
ò·•hLÛI
µ„ÔI
¤ëI
TõI
··ÁýüëIF
·ÁýÁý¸¸¸üŠJ!
TJ
Éýî‹··
¸Éý$˜J
ü·J'
ººÍìÍŽ ¼J
’Ž»¸»üéJ$
TìJ
’Žî‹¹¹
»ÍŽ$ûJ
üŸL/
8ª½ª½Íìš ¤L
ÚŽ¾¸¾üÙL
TÜL
ڎ¼
¾8š$çL
ü‹N(
ÀÀßä N
¨Á¸Áü¾N$
TÁN
¨î‹¿¿
ÁÍŽ$ÐN
üôO0
8«Ãëýå ùO
îĸÄü¯P
T²P
îî‹ÂÂ
Ä8š$½P
¼õ»š½ˆÈ»¨ˆÛøÇ&»ƒ»Æø(ø²hqT‚  ¥  ¦, ˜  ¤, š8÷$& Ÿ8÷$ 
¥*¨ « Ÿ8¢& Ä Æ + Ø Ù Ú í8» ã7, ÿ  , 8÷$
¼¬»š½P»¨NL»I»ÆGEB> Ä Ü Î Ý, Ï Ð Û, Ñ8÷& Ö8÷$×
Ü*ß â Ö8¢& û ý Ì+    ¤8»< š7Æ,  · ½, ¸8÷
¾„ô^»š½Œ¹]»¨ŒÌ]ü¸]&»”ô]»Æ”ˆ^üó](ü£]†»|·^ü’]¾ü‰]ÉLû^)§ì©û¹ìÈ*)Çǧì(ä^A§ìÊÀcÊ"$¬­® ¬§ì ­ c cˆ¢cµ
 `£c¢/ `àB¤GS
®‡¡Éä^É
ÊűËd§_,®_)Ôìuz[´+ËþKÌ.*)ËËÔì(—_BÔìÎÀcÎ"$¯°± ¯Ôì ° c cˆ¢cµ
 `£c¢/ `àB¤GS
±‡¡Í—_Í
ÎűË\æ{ $í{)Æí ª¢DD=R“Ð.*)ÏÏÆí()Ö{HÆíÒÀcÒ"$²³´ ²Æí ³ c cˆ¢cµ
 `£c¢/ `àB¤GS
´‡¡Ñ)Ö{Ñ
ÒűËl”|
4›|)óíeÁÍR´ØûÔ.*)ÓÓóí(*„|IóíÖÀcÖ"$µ· µóí  c cˆ¢cµ
 `£c¢/ `àB¤GS
·‡¡Õ*„|Õ
ÖÅ±Ë lG î÷^|n¤Oî·ØÙ î6l î××
ØUl××(+ J î/3J îÜÙÜNP¸ ¸ î îÛ+Û
Üš ,K îH-%L îL îà·ßà68¹º ¹ î º îß-%ß
à¹
˜.0M îââ!'<» » îá.0á
â…ùBf.a¯àùCÔ&eÙC×e‹Þ
ä±ãÚååãÚÑC¦eãÿ£æ—¤æ´¤ææã±ãùC®Oe¹Cµe ¾i¾iStorageÁÁi»¬iÂiº¬i7·O|5‡‹ÞÃHÿÿÿÿÿÿÿHÑC‚!eãÿ£è—¤è´¤èèãÅãùCŠ"Ne¹C"e ¾i¾i÷ýÁi»¬iÂiº¬i7·O|5‡‹ÞÃHÿÿÿÿÿÿÿHÜå¥ëëÓÀ þýñÿ×»"hY`ìí "”‡ÑêêÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÂÑêê«ð(JÝZ¥ïïÓÀпc«ðýñðÀcðòôUW¼½¾ ¼ýñ ½ c cˆ¢cµ
 `£c¢/ `àB¤GS
¾‡¡îî
ð«ðý±¤ÓöóYÊdä(+òóõöóô†J†JK‰Jµ 7ŠJé‡7‹J¤7·0ØQdèå ÌìÓöóöÅÇÅÇññ
óÅÇÅǯ… öóññ³† äôññ¯… ,—ññöóññöó(PË]öóøÙø"$¿ ¿öóöó÷÷
øoœò»Æ”«»š½Œ¿üª'ü¡2¾ô¡>&`«Súûýþûü£’¾ôþÿ£’¾ôùù
û£’¾ôùù؉ „”ùù£’ùù
þ£’¾ôùùÇŠ „¶ùù£’(QÝ
^¾ô04^¾ôÙOQÀ À¾ô¾ô
œ Rä_¾ô(Sê`¾ôÀc"$ÁÂà Á¾ô  c cˆ¢cµ
 `£c¢/ `àB¤GS
Ç¡
űˤõ
$… ñõ7¯ùûŸYËˆŠŽ˜šœžˆÔ÷ñõŒéùñõŽ˜š  œ

žšÉšÉ
ˆšÉšÉÔ÷ñõü ,– Ô÷èÉèÉ
èÉèÉéùñõë éùŒ¶ »”ô »Æ”ˆ üó ( »š½Œ üï @ üæ K AñõVXñõŒê
»”¨
»Æ”¼
ü§
( »š½ŒÑ
ü£
@ üš
K AñõVXñõ ñõñõ »š½Œ¥ »”¼ »Æ”Ð ü»( ü¤@ »¨Œò »”… üñ' ü— üŽ iñõ~ñõŽ »”§ »Æ”» ü¦( »š½ŒÜ »¨Œï üÛ& ü™n üy Tñõikñõ »š½ŒÌ »Æ”ß üË' üÂ2 .ñõCEñõ »”× »Æ”ë üÖ( »š½ŒŒ »¨ŒŸ ü‹& üÉn üÀy Tñõikñõ »”‘ »Æ”¥ ü( »š½ŒÆ »¨ŒÙ üÅ& üƒn üúy TñõikñõD‡ »”Å »Æ”Ù üÄ( »š½Œî üÀ@ ü·K AñõVXñõ(gí
kñõ Àc "$ÄÅÆ Äñõ Å c cˆ¢cµ
 `£c¢/ `àB¤GS
Ƈ¡Ÿ
Ÿ
 Å±ˬ¢  Ô÷|È8Vw¢£¤¥¦§¨©ª«¬­¯°±²³´£¥§©«­®ŒùÔ÷°²´ ¡¡Ô÷¡¡Ô÷ »š½ŒÐ ÌÊ ¡¡Ô÷/1¡¡Ô÷ »”ƒ »Æ”— ü‚( »š½Œ¬ üþ@ üõK A¡¡Ô÷VX¡¡Ô÷Ô ¡¡Ô÷¡¡Ô÷T” »š½Œç »Æ”ú üæ' üÝ2 .¡¡Ô÷CE¡¡Ô÷»š½Œª ̤ ¡¡
­ŒùÔ÷¡¡½¡ 4É ¡¡Œù »š½Œà »¨Œó üß& üÖ1 0¡¡Ô÷EG¡¡Ô÷ ¡¡Ô÷¡¡Ô÷ »”æ »Æ”ú üå( »š½Œ üá@ üØK A¡¡Ô÷VX¡¡Ô÷(hš lÔ÷Àc"$ÇÈÉ ÇÔ÷ È c cˆ¢cµ
 `£c¢/ `àB¤GS
ɇ¡µ µ
Å±Ë´à »š½ŒÌ ÌÆ  ŒùÓÙRŒ9¸¹º»¼½¾¿¹»½¿ ··Œù··Œù¤À »”’ »Æ”¦ ü‘( üˆ3 -··ŒùBD··Œù¼ù »Æ”à ÔÚ ··Œù.0··ŒùÔÎ »”  »Æ”´ üŸ( ü–3 -··ŒùBD··Œù(i¾ mŒùÁÀcÁ"$ÊËÌ ÊŒù Ë c cˆ¢cµ
 `£c¢/ `àB¤GS
̇¡À À
Áűˤþ  éù+ðßDÃÄÅÆÇÈÉÊËÌÍÎÏÐÄÆÈÊÌÎл”æ »Æ”ú üå( »š½Œ› »¨Œ® üš & üØn üÏy TÂÂéùikÂÂéù„Š" »š½Œ¥! »”¼! »Æ”Ð! ü»!( ü¤!@ »|î! ü—!l üŽ!w TÂÂéùikÂÂéù<ù$ »”ý# »Æ”‘$ üü#( »š½Œ¦$ üø#@ »Æ”Æ$ »¨ŒÚ$ üÅ$' üë#‡ üâ# iÂÂéù~ÂÂéù„õ& »š½Œª& »¨Œ½& ü©&& ü &1 »Æ”Ü& ÔÖ& >ÂÂéùSUÂÂéù¬Š( »š½ŒÓ' ÌÍ' »Æ”ñ' Ôë' *ÂÂéù?AÂÂéùLä( ÂÂéùÂÂéùl‘* »”Ï) »Æ”ã) üÎ)( »š½Œø) üÊ)@ üÁ)K AÂÂéùVXÂÂéù(jö néùÒÀcÒ"$ÍÎÏ Íéù Πc cˆ¢cµ
 `£c¢/ `àB¤GS
χ¡Ñ Ñ
ÒűËÔÖ, !Dè, öú÷áÂ'¹-9üÔ.*ÓÓöú(kÎ, oöúÖÀcÖ"$ÐÑÒ Ðöú Ñ c cˆ¢cµ
 `£c¢/ `àB¤GS
Ò‡¡ÕkÎ, Õ