Files
archy/core/target/debug/deps/libtungstenite-f6402551aec83ca2.rmeta
T

2005 lines
433 KiB
Plaintext
Raw Normal View History

2026-01-24 22:59:20 +00:00
rust
ÌÀ#rustc 1.93.0 (254b59607 2026-01-19)Áõ…·fÊ ¦%g--c48c539199cbc88bÁ³VOÐêùÿ²?ÑL¼§Ì±-a7a40eb546f9e2b0Áá\ƒ¦è3$|]åŒ[IÚ tæ-14b12edc9f8cd90bÁë&Gf·Ã ¬ëñq:¤»b-bb76018b1173caf6Áà 9m Ù„«ÐÒþá•cB;-030c5b0bba47cc8fÁrustc_std_workspace_coreÁÛ¹þÓ7>H%¸ÚÉ­-4b81d37a5530864dÁüÃùs<Uß7VyóHr#QÏ-c66cc7807550ce25Á miniz_oxideÁõFÖˆÚ™ª‹"ÞXzLVª-62cbc7af83058505Áadler2Á—wÉD‘嵯|6¨%Œ
+-2f171dd2394b4b62Á hashbrownÁ,ïcV¼¨ø¢:Ê\'È߈-9571ba9e0f6c7a90Árustc_std_workspace_allocÁ%¥Èxµù·¼5Ä3Bœ-aac566ad65903fa4Á
std_detectÁMmáýZ^9õ Îà§e˜÷e-2edb296e590136d8Árustc_demangleÁ@¼§VÉNb˜æ¨fHÌ+V3-53b132e4a2fa6e26Ácfg_ifÁfÝv.Å"ÒÜuPp¹ˆ¶-f76b385d7d4d7f3eÁ addr2lineÁÕú-WiúQVÓ¬
µT§5-fe25100bd73e48e4ÁgimliÁ¹xLáÇí÷‘o±Ñ8£Å-265ba9e6e4f70b3fÁobjectÁÔ³ÝzÓÿ¶ò°öM›¼òü`-9ae0d1f8ea52a318ÁmemchrÁRÎ÷׎™te~QÓ¿ØC\Ò-0bff3c8e8f4e489eÁ  –©HtGNÏ·ˆ!á-d69228d077d46f36ÁhttpÁ¢,¯ù±âö$0C‡ýÓøe-21984b9267a69f1bÁfnvÁ˜'©”Ð B•?eQ¬î¨-8119a63a4474fc36ÁbytesÁ,›Ž)6 ¤ÜÛÙ¿‘¿Bµ-4c247c0d324eebb2ÁitoaÁkæ4ïMŠ€0×ú à˜-470c3536ec7ad19bÁlogÁéH—¹pgË¡ÚἎ­ƒ-016737ac427f5e46ÁurlÁàíëÇrük,«•.-9543367f2c346823Áform_urlencodedÁ˜ /WüèÍP¤Èû]è-4c1f6fca6b620a27Ápercent_encodingÁÀ´ ¡ .ÿ?aݑøl-a85f3c5e1556876dÁidnaÁ¼£Ð×ý˜Oص)Ó62Ù-12fc1b7a8933529aÁ idna_adapterÁ¶Ù Àój¬×)
 ˜¶Úþ-a448d8ab7871fd0eÁicu_normalizerÁbc ð(¤©è¥,(<3¿-5d20d37e0b2447b7Á icu_providerÁ
ŸÃ»w»r‡ $Hg¥Ž-8143c83cab886369ÁzerotrieÁw²ø#{{çbKåDŽJ´-f10a0af380abd751Á
displaydocÁà¿ÿ©]n´ùRèê]-8a7302fc0e16b6baÁzerofromÁˆo“ÄÄx(ÃjBsÖ›ªÅ-e7a4aaab09db7e3aÁzerofrom_deriveÁ¿ &èé•)ˆç-03b1dd1f2d87713aÁyokeÁÓ\¾^Œ†ícN¼è¸¼bH-17a2be691e559186Ástable_deref_traitÁþÖ›#Ÿžõ E4Õèr-80e318edb62c0e9cÁ yoke_deriveÁ­Ù@÷ò+çšFåcz-5e7d4687001d5481ÁzerovecÁ9°I=µá’Ún÷£ø×ªwÓ-187d4334a3106b07Ázerovec_deriveÁ44½é—FsÉR-*±È-f6b5d17a820a0cf7Á writeableÁ³®ç‘"0Äز¿.áÆˆÂ-5a4fe1098e64be2fÁicu_locale_coreÁ
þ I왈ñ7Âp~-e924512d9672dc67ÁlitemapÁ#àG½ÆàÍ §ßëûvFÜ-6c0049c0b6db37f9ÁtinystrÁEM¤ƒC
ý¶s·5CO¾U-76a3ce4936fcb599Áicu_collectionsÁFKžvÓc´D›Â³ñš²Ù8-1a381751c0cb5f54Á
potential_utfÁüQ¿®R2¡zI!„Õ¯-eb006b8a7f73122fÁicu_normalizer_dataÁlU"ò¸U¾¾ÓĬOÀÍë-8d469db884598c22ÁsmallvecÁTc}@^©+í©f5<¿n-445f50e307365817Áicu_propertiesÁ+ûeÃôq…1ÂÐGp;”;-1eb99510e65c73ccÁicu_properties_dataÁ—]±N$D–ÊQ©%¦-1e7a51c60a295812Á utf8_iterÁsD°ºÄÌy Aºt°gV¥Ü-d669afc8201562eeÁ thiserrorÁX:§nZ\?Ìš±x¶JÁ-b5ff04312b141a9fÁthiserror_implÁ•>ùÕ ãdø ;,iV½N.-153d8d97a97ffd5fÁhttparseÁ]) :L8²þ-836d2a7cd2a3b8d3Ásha1Á"Eƺ˜É?èlVˆuf-5f9de5fff9fe1a24ÁdigestÁÑߘ¼1¹½gt FcÙ‘-592b946f0553c0f5Á
crypto_commonÁ9Pëd¸ÏÑè„#Â,‡-bfc53011debcc84dÁ
generic_arrayÁhK=¹õ&UeTM$D³¾‚-ac360eb0ff86a03cÁtypenumÁùƒÀ"–áNóéù\ø*-1e66d7cf02bc5a08Á block_bufferÁ*«Ö #èL‹ÂI3êâ}™=-0abe516b7c4a25a8Á®M1XÃßÏ“¡ÂØ_ùШ-7228978f4fcb9234Á byteorderÁ$Ô5Œþ@9÷£ôU¼º-17cdf8bd3124628aÁutf8Á`‡â±dDÄd>¯L¿‰Ì-65e7a9596ebaed50Á
native_tlsÁ­TäÌzÅôå¢y;dZF-5f12b843e6ccde08Áà M­•’µ\ÇMÏvâr¾O-93287e1189e2c543Ásecurity_frameworkÁÅžmßtŒ|ž‡²H-d8a510483897b97cÁcore_foundationÁÚŽ'ù׈ nõž `u-fb1e7883e1e68b73Ácore_foundation_sysÁåŒcþs·F[fÏ¿7hš-cda86d87b2ff14e2Ásecurity_framework_sysÁ©©°/úãzàïU¬O»-edd379ed6a28bcc3ÁbitflagsÁ­£à–©9ªe¿ësÆ-fe30f521014ac5dfÁtempfileÁ“RõìÞÕ@NU&mìGàó"-6fdc997559f6b161ÁrustixÁ!Ð)ë-z3Zp=ÑFÁÔu-16db9d7493c09f76ÁerrnoÁÍk2ß6£}€æT} ê)/Â-863fc617297c3a20Á once_cellÁGÎWypAœýéñùò¬%ï-db04c746d2c5ae91ÁfastrandÁɈÓfxø'S(´Fîdó™-86594cd9da747fc4Á getrandomÁáDã>öjêH«çre;f©O-de56f0c51ca4aa4bÁrandÁAä×§½Rx÷såÞU O-fca2c286fb36a700Á rand_coreÁŠÆò–¾y_í0*£Ó(%q-37298bdb8ea751dbÁä³Cºb9TÕ[{O§£4-fb14c5c53606120fÁ rand_chachaÁ¤x9!váVñÅaU?/}º
-b4fe982f8d0ef3faÁ
ppv_lite86ÁÜJò½¼è¥ùvÕL%-4b85e23ed0e0c2a7ÁzerocopyÁóö¯cGÊÛµ~ÿþ„-9e648df28c16c144Á
data_encodingÁ¨UM ÿ,>þâvZgóè-c8f3704370f481f7ÁtestsÁ,Ûàí ,†Wà$ûVÔí ,ç àí ,ÎMà$ÃMŒí ,¬àí ,¯@à$¤@»í ,ùcà$îcí ,ìàŠí ,¤>à$™>Éí ,ëM à$àM í ,×û
à$Ìû
   __rustls-tlsÁt¬ Ä¢  StreamOwnedÁ\« <„ ö"tŽ Ä„ ÄrustlsÁ4Å  ö"t¨ Äž bufferÁ

CHUNK_SIZEÁ
 

with_capacityÁ
from_partially_readÁ 
 as_cursorÁ

as_cursor_mutÁ
into_vecÁ
 read_fromÁ
clean_upÁ˜$ remainingÁchunkÁadvanceÁ˜$>Å 
  
 connect_with_configÁ@ReqÁ@try_client_handshakeÁB @create_requestÁconnectÁE§'connect_to_someÁuri_modeÁclient_with_configÁIStreamÁI§'ÅL¸(L§'IntoClientRequestÁOinto_client_requestÁQ'aÁQù(T—)Tù(Wù(Y—)Yù(\ù(] ] `—)`ù(cù(eù(g'hÁg'bÁgù(jerrorÁllllllllll l
l lýyyl|ïl~ïlïlïlïlïlˆïlŠï handshakeÁŒÅ 
  
 !"RequestÁResponseÁ³¥%³Œ¥% IncomingDataÁInternalStreamÁ FinalResultÁstage_finishedÁgenerate_requestÁ¼KEY_HEADERNAMEÁ¼WEBSOCKET_HEADERSÁ¾ ¼ ¼ ¼ ¼ Äverify_responseÁÅ Å Å Å Å Ë try_parseÁÌ Î•*Ξ*Î
from_httparseÁ generate_keyÁÒ ŒheadersÁÔÔÔÔÔÔÔÔ MAX_HEADERSÁÔ FromHttparseÁÝ݃0Ôàž*à•*àƒ0ÔäØ/å ŒmachineÁçççççççççç ç
ç ç çõ¸(õ
start_readÁõ start_writeÁøõget_refÁõget_mutÁçü¸(ü single_roundÁþObjÁçTryParseÁØ/ç check_incoming_packet_sizeÁ MAX_BYTESÁ MAX_PACKETSÁMIN_PACKET_SIZEÁMIN_PACKET_CHECK_THRESHOLDÁŒserverÁ 
  
 !"#ª-¹-
ErrorResponseÁ create_partsÁ±± ± ´ ´ ± ± ± create_responseÁcreate_response_with_bodyÁ»»impl FnOnce() -> TÁwrite_responseÁ¾¾impl io::WriteÁÁØ/ ĕ*Äž*ă0CallbackÁÈ
on_requestÁÊʵ8͵8Ï¥%Ïkόӥ%ÓkÓë-Óÿ-Ó•.Ó¨.Ù ŒŒŒŒŒŒŒŒŒŒ Œ
Œ Œ Œ
ŒŒêRoleÁêÔ2êã2êâ+ŒHandshakeErrorÁï:ï InterruptedÁñ
ñìïFailureÁô
ôìŒ÷:÷ÍŒú:úÍŒý:Œÿ:ÿïŒ
HandshakeRoleÁë-ÿ-•.¨.Œderive_accept_keyÁWS_GUIDÁprotocolÁframeÁŠcodingÁÍÍÍ˜˜˜˜˜˜˜˜ £ï¤¤¤¤¤¤¤¤¤¤ °
is_allowedÁ²Í´ï'tÁï ¹ïŠÅ<»»»»»»»»»» »
» » »
»»»»»»»»»»»»»»»»»»» »ÝÙ>Ý
into_ownedÁ»àÙ>àÍ»ã>»åparseÁæimpl AsRef<[u8]>Áå¾ åáé
impl WriteÁåset_random_maskÁ»ìparse_internalÁí impl ReadÁí í »ñ¾ ñis_emptyÁñheaderÁñ
header_mutÁñpayloadÁñ payload_mutÁñ is_maskedÁñ±Añ
apply_maskÁñ into_dataÁñ into_stringÁñto_textÁñ
into_close疻
ñpongÁñpingÁñcloseÁñ from_payloadÁñáŸA»Í» LengthFormatÁˆU8Á
ìˆU16ÁŒ
ˆU64ÁŽ
»
for_lengthÁ extra_bytesÁ length_byteÁfor_byteÁŠmaskÁ
generate_maskÁ öB˜ apply_mask_fallbackÁš apply_mask_fast32Áœ ŠŠŠŠŠŠŠŠŠŠ Š
Š Š Š
ŠŠŠŠ¯¸(¯ ¯Ä$¯
into_innerÁ¯Ô2¯ã2Џ(readÁй¸(¹sendÁ¹writeÁ¹flushÁо ¾Ä$¾set_max_out_buffer_lenÁ¾set_out_buffer_write_lenÁ¾
read_frameÁø(¾ buffer_frameÁŸ(¾write_out_bufferÁǸ(ª
ÉÉÉÉÉÉÉÉÉÉ É
É É É
ÉÉÉstring_collectÁÚÚÚÚÚß ß¾ á ßextendÁãß™CÉÉç ç¾ çÙJêçcompleteÁÉIncompleteMessageTypeÁíTextÁî
íBinaryÁð
ÉòtextÁó¥%òbinaryÁõòis_textÁò is_binaryÁòis_pingÁòis_pongÁòis_closeÁò¾ ü ò‹BòˆCò into_textÁò¬CÉïÉ'sÁïÉž*ïÉŠïÉŒïÉŽŽÉÍ 
  
¯>± assert_validÁ³¸(³from_raw_socketÁ³Ä$³Ô2³ã2³
set_configÁ¹!impl FnOnce(&mut WebSocketConfig)Á³
get_configÁ³can_readÁ³ can_writeÁ¾¸(¾ÕG¾îG¾úG¾‡H¾íC¾ read_messageÁ¾
write_messageÁ¾
write_pendingÁÈ ÈÄ$È_newÁȈPÌšPÈÃPÈÕPÈåPÈÕGѸ(ÈúGÓ¸(Ó È‡HÖ¸(È_writeÁظ(ÈíCÚ¸(Èread_message_frameÁܸ(Èdo_closeÁÞÙ>Þ ÈIá¸(Èset_additionalÁã å is_activeÁåÕPåcheck_not_terminatedÁCheckConnectionResetÁécheck_connection_resetÁëëÍTÂ4îîîîîîîîîî î
î îaccept_with_configÁû¥%îacceptÁý¥%îaccept_hdr_with_configÁÿ¥%ÿkî
accept_hdrÁ¥%kstreamÁ NoDelayÁ set_nodelayÁ—W¥%—WMaybeTlsStreamÁ¥%PlainÁ
ì NativeTlsÁœ
œìŸ¥%ŸÍ¢¥%¢ÕG¥¥%¥úG¥‡H©¥%©—WtlsÁ¬¬¬¬¬¬¬¬¬¬ ¬
¬ ¬ ¬
¬¬¬¬ ConnectorÁ¾êW¿
¾„XÁ
Áì¬
encryptionÁÄøÅÅÅÅÅÅÅÅÅÅ Å
Å Å Å wrap_streamÁÓ¥%ÄplainÁÕÕÕÕÕÕÕÕÕÕ ÕëZà¥%¬TlsHandshakeErrorÁâ¥%¬
client_tlsÁää¥%¬client_tls_with_configÁçˆ\ç¥%utilÁêêêêêêêNonBlockingErrorÁñinto_non_blockingÁêóˆ]êõˆ]ö êNonBlockingResultÁøýøno_blockÁêûûü*ûýûá]READ_BUFFER_CHUNK_SIZEÁ
ReadBufferÁ 
  
²^š˜$šstorageÁš×% Ÿ˜$Ÿ ŸÍll¤sourceÁ¥l §Í¨l
ªïl ¬ïl ®ïl
°ïl²ïl´ïlÍ£ConnectionClosedÁ¸
£
AlreadyClosedÁº
£IoÁ¼
¼ì£TlsÁ¿
¿ì£CapacityÁÂ
Âì£ProtocolÁÅ
Åì£WriteBufferFullÁÈ
Èì£Utf8ÁË
£
AttackAttemptÁÍ
£UrlÁÏ
Ïì£HttpÁÒ
Òì£
HttpFormatÁÕ
Õìl
CapacityErrorÁllÚÍÛlÝÍllàÕlâ˜llåÈlØTooManyHeadersÁè
ØMessageTooLongÁêèêmax_sizeÁl
ProtocolErrorÁlîó_ïlñÍòlôïlöÍllùÕl û˜l!ýÈíWrongHttpMethodÁÿ
íWrongHttpVersionÁ
íMissingConnectionUpgradeHeaderÁƒ
íMissingUpgradeWebSocketHeaderÁ
í MissingSecWebSocketVersionHeaderÁ
íMissingSecWebSocketKeyÁ
íSecWebSocketAcceptKeyMismatchÁ
íJunkAfterRequestÁ
íCustomResponseSuccessfulÁ
í
InvalidHeaderÁ
ìíHandshakeIncompleteÁ
í
HttparseErrorÁ
ìíSendAfterClosingÁ
íReceivedAfterClosingÁ
íNonZeroReservedBitsÁ
íUnmaskedFrameFromClientÁŸ
íMaskedFrameFromServerÁ¡
íFragmentedControlFrameÁ£
íControlFrameTooBigÁ¥
íUnknownControlFrameTypeÁ§
§ìíUnknownDataFrameTypeÁª
ªìíUnexpectedContinueFrameÁ­
íExpectedFragmentÁ¯
¯ìíResetWithoutClosingHandshakeÁ²
í
InvalidOpcodeÁ´
´ìíInvalidCloseSequenceÁ·
lUrlErrorÁl"l#»Í¼l$¾Íl%l&ÁÕl'عTlsFeatureNotEnabledÁÅ
¹
NoHostNameÁÇ
¹UnableToConnectÁÉ
Éì¹UnsupportedUrlSchemeÁÌ
¹
EmptyHostNameÁÎ
¹
NoPathOrQueryÁÐ
lTlsErrorÁl(Óó_Ôl)ÖÍ×l*Ùïl+ÛÍÒNativeÁÝ
ÝìClientHandshakeÁà¥%à verify_dataÁàconfigÁà_markerÁå¥%åÍ
VerifyDataÁè
accept_keyÁêÍçHandshakeMachineÁì¸(ìÈVìçð¸(ðÍç RoundResultÁó“3ó¸(ó
WouldBlockÁö
öìó
IncompleteÁù
ùìó
StageFinishedÁü
üìçÿ“3ÿ¸(ÿÍç StageResultÁƒ “3ƒ ¸(ƒ  DoneReadingÁÛ
ÈVtailÁƒ  DoneWritingÁŠ
Š ìç “3 ¸( ÍçHandshakeStateÁ ReadingÁ
ì í WritingÁ
ìçÍç AttackCheckÁ number_of_packetsÁ number_of_bytesÁçž Í
NoCallbackÁ 
£ È ¦ ÍServerHandshakeÁ¨ ¥%¨ k¨ callbackÁ¨ ÿo¨ error_responseÁ¨ p
¯ ¥%¯ k¯ ÍŒ MidHandshakeÁ³ :³ roleÁ³ É1Œ· :· ÍŒProcessingResultÁº ¸(º •.º }½
½ ìº DoneÁÀ
À ìŒà ¸(à •.à ÍOpCodeÁÇ DataÁÈ
È ìÇ ControlÁË
Ë ì
Î Í  Ñ Õ
Ó ˜Ö ÈxÙ }Ú
Ù ÎKÜ
Ù ßKÞ
Ù ReservedÁà
à ìã Íæ Õè ˜ë Èšxî CloseÁï
î PingÁñ
î PongÁó
î §yõ
õ ìø Íû Õý ˜
È CloseCodeÁƒ
Ñ
ƒ
AwayÁ
ƒ
îaˆ
ƒ
 UnsupportedÁŠ
ƒ
StatusÁŒ
ƒ
AbnormalÁŽ
ƒ
InvalidÁ
ƒ
PolicyÁ
ƒ
SizeÁ
ƒ
 ExtensionÁ
ƒ
˜
ƒ
RestartÁš
ƒ
AgainÁœ
ƒ
¹až
ƒ
§y 
 
ìƒ
IanaÁ£
£
ìƒ
LibraryÁ¦
¦
ìƒ
BadÁ©
©
ì¬
Í ®
˜!"±
Õ#$´
È%»
CloseFrameÁ·
Ù>·
codeÁ·
±
»»
Ù>»
Í» ¾
Ù>¾
È»
Á
Ù>Á
˜» Ä
Ù>» Æ
Ù>Æ
Õ» FrameHeaderÁÉ
is_finalÁÉ
rsv1ÁÉ
rsv2ÁÉ
rsv3ÁÉ
opcodeÁÉ
ÃEÏ
»
Ñ
Í»Ó
È»Õ
˜Ö
»»Ù
Õ»FrameÁÛ
BÛ
»B»Þ
Í»à
È»â
˜»»å
Õ Š FrameSocketÁè
¸(è
ÈVè
codecÁŠì
¸(ì
ÍŠ
FrameCodecÁï
 in_bufferÁï

out_bufferÁï
max_out_buffer_lenÁï
out_buffer_write_lenÁï
BŠõ
ÍÚStringCollectorÁ÷
dataÁ÷

incompleteÁÚú
ÍÉIncompleteMessageÁü
 collectorÁÉ þ
ÍÉIncompleteMessageCollectorÁ ÎK
 ì ßK
 ìÉ
 ÍÉMessageÁ ÎKŠ
Š ì ßK
 ì ¡z
 ì ²z
 ì z
 ì ù€
 ìÉ œ ÍÉ ž ˜É
É¡ ÕÉ£ È:¥ ServerÁ¦
¥ ClientÁ¨
ª Í ­ È
  ± Õ
³ ˜WebSocketConfigÁµ max_send_queueÁµ write_buffer_sizeÁµ max_write_buffer_sizeÁµ max_message_sizeÁµ max_frame_sizeÁµ accept_unmasked_framesÁ¼ Í¿ È WebSocketÁ ¸( socketÁ contextÁÆ ¸(Æ ÍWebSocketContextÁÉ ØvÉ Å<É É ¼ƒÉ additional_sendÁÉ ÿoÐ ÍWebSocketStateÁÒ ActiveÁÓ
Ò 
ClosedByUsÁÕ
Ò  ClosedByPeerÁ×
Ò CloseAcknowledgedÁÙ
Ò 
TerminatedÁÛ
Ý Íà Õâ ˜å ÈModeÁè êWé
è ¹aë
î È ñ Í







D
D
G
G
H
»
Å
Ì
å
ú
û


±
º
»
¾
Â
É
Ê
Ì
Î
Ù
ì
í
ù
ù
ù
ü
ü
ü











³
³
³
â
â
â
æ
è
é
é
ë
í
ò
ó
ô
õ
ö
÷
ø
ù
ú
ý







˜
š
œ
´
µ
¸
»
¼
½
Á
Â
Ã
Ã
Å
Å
Ç
Ç
á
ã
é
ê
÷
ø
ù
ú
û
ü
þ




²
·
¸
¹
¹
»
¼
½
À
Á
Â
Ã
Ä
Ä
Å
Æ
Ç
Ì
Ì
Î
Ï
Ð
Ñ
Ñ
Ó
Ó
Ö
Ö
Ø
Ø
Ú
Ú
Ú
Ü
Ü
Þ
á
á
ã



¡
¡
¡
¤
¤
§
§
¨
«
Ó
 ¢
¢
¢
¥
¨
¨
¨
·
·
·
Û
Û
Û
Þ
Þ
Þ
á
á
ã
æ
ï
ò
ò
ò
÷
÷
÷
ú
ú
ü
þ
¼
¼
¼
¿
¿
¿
Â
Â
Ä
Ô
×
×
×
Ü
Ü
Ü
ç
ç
ç
ë
ë
ë
ò
ò
ò






š
š
š
Ÿ
Ÿ
Ÿ
¤
§
§
§
²
²
²
¹
¹
¹
Æ
Æ
Æ
Ï
Ï
Ï
Ò
Ò
Ô
×
ä
ä
ä
ç
ç
é
ì
ù
ù
ù
ü
ü
þ

­
­
­
¯
²
²
µ
½
½
½
À
Ã
È
È
Ò
Ò
Ò
Ô
Ö
Ú
Ú
ß
ß
ß
á
ã
æ
æ
î
î
î
ö
ö
ö
û
û
û
ÿ
ÿ
ÿ
ˆ
ˆ
ˆ



Ÿ
¢
¢
¤
«
«
«
®
²
²
´
½
½
½
À
È
È
È
Ñ
Ñ
Ñ
Þ
Þ
Þ
á
á
ã
æ
ï
ò
ò
ò
Èéñøà`šš²^œ³_×%ö·A›ÃÑÞ˜$ýšÄýšO —)O —)ÉHÉHÊHœÜ3ËÚ¢×€JÜOê›O —)UriÁœschemeÁ
 authorityÁ
žpath_and_queryÁ
DBÑIn8 {O®œO —)Úb

serializationÁ
scheme_endÁˆ username_endÁ
host_startÁŠhost_endÁ´ŒportÁ
path_startÁŽ query_startÁfragment_startÁq²÷ioãOªOª-headÁˆšbodyÁˆŠ£°ó´&ÿÿOª-methodÁª ª±0ÎPf#áÝH•*ž*Ï£ ¸¹ë`º»ˆa¼½¢a¾ì¿À¹aÁìÂÃÑaÄìÅÆîaÇìÈÉ‹bÊìË̯bÍÎÀbÏÐÚb ÑìÒÓòb
ÔìÕÖ‹c ×ìíÙN…h ®å`ΠúΠ  ¡Ñ
íÓ¶neò¢ËfúΠÒÝÞ²oßìÐÆ6Ñ{YúΠØèédêªdëèìÈdÚ~ô›†ëúΠíÿÎeêeƒ‡f²fˆÜfЉgŒ¬gŽÖgóg˜h ìºh
Úh ˜ìšüh œ™i
žºiŸ Úi¡¢þi£¤ j¥¦Ãj§¨âj©ìª«Žk¬ì­®·k¯°Ûk±ì²³€l´µ©lì·¸Ëlt4ë

ÓPúΠ¹ÅÆ¸mÇÈÙmÉÊðmËìÌÍ”nÎϵnÐÑÏnüþ¿78ÿúΠì
ì
í
innerÁã
‚áXtnòDyà`ΠúΠƒÄƒÄ Utf8ErrorÁ„Ä valid_up_toÁs…Ä error_lenÁs8(JÒó]ÄúΠÖHÖH
FromUtf8ErrorÁ×HÜ3ØH²*Ü3ðù'ºZ+úΠÐÐInvalidHeaderValueÁÑ_privÁÂ÷›öL}ýbúΠÇÇInvalidHeaderNameÁÈ⪸çgúFv2ÂWúΠµµ
ToStrErrorÁâªÂî†AßQ–
úΠªª«
InvalidUriÁ¬ì
 Ç
*}^úΠÔ Ô InvalidStatusCodeÁÕ âªÎ ‘àÁìúΠ
HeaderNameÁ HeaderValueÁNewLineÁï{TokenÁdVersionÁK‰GdÀÐn·Ïò£å`ò£à`ò£¬âò£žò£ò££ò£áò£Þò£þò£ÏÀ¤å`À¤úÀ¤©®à`À¤¬âÀ¤žÀ¤À¤£À¤ÞÀ¤Ï¶¨å`¶¨à`¶¨¬â¶¨ž¶¨¶¨£¶¨Ï¹£å`¹£ú¹£ì@ c6VOÐwÈzà`¹£à`ààÍoâìoãÿoäpÁ¤Õc¤ê¥%ɲà`èè±péÃpRë^¤¿½³ˆ ˆ ¹-Š ¹žûÉžû_}ˆ¾tÇçø°ú°û°Ðü°ý°þ°ìHˈXêE>ßAßA­âAbufÁ«<ãA¾ «<µ[<™é•E•EEGlobalÁ Ï€ûkW¬ sÝÚ³¹-ªä~±
±0 cªz®«¬•*ž*Ýàà HeaderMapÁâÃEãindicesÁäentriesÁå extra_valuesÁædangerÁRqÉ'J­­Ñ­®Ò¨Â¯ is_sensitiveÁÂ{ûZÞÑÙOK ž*
HeaderÁÿ
˜
šC­ã 0Ò•*¦¶à`ììâpîÈVçïçÎÚBH»Ø¸(à`óö÷Êqøìùúéqûìüýˆrþì/ÚÛïǺ/Ý“3¸(à`ƒ êrÛ
ˆ ÈVsŠ ™sŒ ì‡.pºfœ=`í¹ó¹à`ìsìçíçt˜ ìç=ŠBå&¿€à` ¹tœ Ìtç åtçtVm™¤Þ?¦ŸÝ¦ŸðŸÈÌ8á    ¡ ‰u 'ÂþL¹8Þ«¼þ«¼à`«¼È«¼à`¨ ¨ Äu« êu¬ ÿo­ ‚v® pðÓuøì>]޳kƒ½à`³ ³ ¼vµ ØvŒÉ1ŒZ‘7\Ö:à`ïñòÑ:óìôõñ:öì¯k…ä™õ=慨å`µ¾Ïµ¾úµ¾Πà`º ½ ¾ }¿ ìÀ Á ½w ìpU]ZQÛ’Ÿ€¹•.à`Ç È É xÊ ìË Ì šxÍ ìrÔ mL=ð“¬âƒÀžƒÀƒÀ£ƒÀáƒÀÞƒÀþƒÀà`Ù Ú Û }Ü Ý ÎKÞ ß ßKà á §yâ ì÷8ë3Špw?¬â˜Áž˜Á˜Á£˜Áá˜ÁÞ˜Áþ˜Áà`î ï ð zñ ò ¡zó ô ²zõ ö §y÷ ìä_9·Lhm¬âÞÃÂãÃÂáÃÂÞÃÂþÃÂå`˜Áå`ÃÂå`ƒÀúƒÀúƒÀà`ƒ


Ñ

¹{ˆ

îaŠ

×{Œ

ï{Ž

|

—|

«|

¾|

Ï| ˜


š

ò| œ

†} ž
Ÿ
¹a
 
¡
§y¢
ì£
¤
º}¥
ì¦
§
Ó}¨
ì©
ª
ï}«
ì§dì—˜ ƒ£¬Ä¬â¬Äž¬Ä¬Äá¬ÄÞ¬Äþ¬Äå`¬Äú¬Äú Ù>¬Äú¬Äà`·
·
Ê~¹
ä~º
±
Ã:3B@î†3Ù>ÞȣȬâÈžÈÈå`Èà`É
É
ÙÊ
ìË
üÌ
ˆ€Í
”€Î
 €Ï
ÃEk—ôØ·ûÒÃÞ‹É£‹É¬â‹Éž‹É‹ÉÄ‹Éà`Û
Û
ù€Ü
B»Ý
»B»ç ëô¢?®Þ¨Ê£¨Ê¬â¨Êž¨Ê¨Êå`¨Êà`è
è
Ôê
ÈVŠë
÷Š ›W€¹à`ï
ï
™‚ð
«‚Šñ
¼‚Šò
΂Šó
肊ô
›BŠÿ~Aoà`÷
÷
™ƒø
°ƒÚù
¼ƒÚ”<uŠôÈ0à`ü
ü
Ûƒý
ôƒÉÈêPzŠÚ¹à`   ÎKƒ ìÉ  ßK ìÉøI˜½‰Z4€à` Š  ÎKŒ ì Ž ßK ì  ¡z ì  ²z ì  z˜ ì š ù€ ì3Ë`Mm£¡Î¬â¡Îž¡Î¡ÎÞ¡Îú¡Îê›ú¡Î ¸Mú¡Î ž*
ú¡ÎÙ´úÙ´¡ÎꛡÎå`¡Îà`¥ ¦ § º†¨ © ͆-»@p¡0áöÐÞöÐþöЬâöОöÐöУöÐà`µ µ £‡ º‡· Ї¸ 釹 †ˆº žˆ» ´ˆ`D"¼Ì(áûÑÞûÑþûÑÄûÑà`  öˆÄ Å ÿb¼¾àZÀ¹à`É É Á‰Ê ØvË Å<Ì Í ¼ƒÎ ú‰Ï ÿo \÷/÷à`Ò Ó Ô ¼ŠÕ Ö ÏŠ× Ø æŠÙ Ú ÿŠÛ Ü Zúa7Û>„o¬âÆÔžÆÔÆÔ£ÆÔáÆÔÞÆÔþÆÔéê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Πáè é ê êWë ì ¹an„ô@€ó|ÞÝÖþÝÖà`ÝÖÆ!Æ!Ç! TcpStreamÁÈ!ì³! ¤mRç±ß#Õ@„ TlsStreamÁ@†ì@ çsÀ®YN+޳à`šêW위XžìlӺϛVž©޳ ¿Øß¿Ø¿Øñ£ñΠøê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ÌÖü*Ÿš£ÝØöí¾¹ÛÒåàêèðìÿó ƒ ™ ‘ ž  ¦   ¯ ¨ · ³ ÷ïà º Î Ç ã Ù ø î ¬
ƒ
»
·
Ñ
É
Þ
Û
ì
è
õ
ï
ú
÷
þ
ü
 œ  ª ¥ ¼ µ Æ  РÉ Ý Ò ñ è ŸššãÉ
¯µ Q
T
WÉHY
\`
ceg¤£ÙØîíº¹ÓÒýï§£ÚØñí»¹ÖÒúïÙ “î •Ç ²ƒ
à·
Û
 ª£¬£®£°£²£´£|£~£££££ˆ£Š£ôíÙÒÿï£Ç ´¹ƒ
   Š ŒßAߨøíÀ¹Ð Ç å Ù ú î °
ƒ
Ä
·
Ø
É
ä
Û
   ° ¥ ß Ò àØùíÁ¹Ñ Ç æ Ù û î ±
ƒ
Æ
·
Ù
É
å
Û
¡  ± ¥ à Ò âØûíÃ¹Ó Ç è Ù ý î ®
ƒ
Á
·
Õ
É
â
Û
ž  ³ ¥ â Ò äØ¢   Õ Ç ê Ù ÿ î ³
ƒ
¬ ¥ ¾ µ ä Ò í è åØýí£   Ö Ç ë Ù €
î ´
ƒ
¾
·
Ó
É
à
Û
£  ­ ¥ ¿ µ å Ò î è çØ¥   Ø Ç í Ù
î ¶
ƒ
¯ ¥ Á µ ç Ò ð è àÓ¨ ˈ äàÁΈ ààÄÊÍ  ŽÉHëê³Æ!”©¢¥ó õ£ûê³à`&œ
ŠÄO Ï.å`
*ú[¬â
µž
[£
[á
[ÞFþ
iFÝÈ
é ßñø "Sec-WebSocket-Key"ÁüÌJ
ȌȌ
»å»å¼î»åt‡½»åüŸx¾»å4I½»å| MAX_HEADERSÁ16Á|124Á| MAX_HEADERSÁ65536Á512Á128Á@64Á| MAX_HEADERSÁüà'  $6C ²Ð üÉ?ˆÅé—鎗é6'b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"Á4096ÁREAD_BUFFER_CHUNK_SIZEÁ¯
£½%Π1£9@š
£À%Π1¹£9@
£Ã%Π1ò£9@
£Æ%Π1À¤9@
£É%Π1¡Î9@Ù
£ Ð%Π1¶¨9@
£
Ó%Π1Ú³9@
£ Ö%Π1¿©9@lÀ4
í %À¤1ââ·­ãÒ¨¸‹Ú¯ˆÖGZÄdklÐ6
í %À¤1©®9@¼·?
í¨%À¤18?¤°@
í«%À¤18?„äB
í°%À¤1˜Á9@løD
íµ%À¤18?|ÃI
¹Ê%¶¨1ê›9@4éO
ÒÞ%¹£1‡²9@T 
óí¹ó¹ ÷-¹9ììâpîÈVçïçÎÚBH»Øó¹z
óí¹ó¹ ú-¹9ñöAH
óí¹ó¹ ý-¹9€ºAH\Î!
ƒ í¹ó¹ -€º9ó¹AH<ƒ$
(äº4šš²^œ³_×%ö·A›ÃÑÞ}Ä»Œ<Ë$
%äº1ÐGÐGCursorÁÒGÒ¨ÓGposÁ8p nèÊøÙ´|ƒ 
慨ò)µ¾5ï½=D

慨õ)µ¾5Π=DD¸
º €¹ö¿ ¾ -¬¿9ǸAH
º €¹ö¿ Á -¬¿9ö¿AH
Ç É %ƒÀ1˜Á9@
Ç Ì %ƒÀ1ÃÂ9@
Ù á %˜Á18?D
î ö %ÃÂ18?D¢1
ƒ
¡
%¬Ä18?$È1
ƒ
¤
%¬Ä18?<ê1
ƒ
§
%€18?2
ƒ
ª
%¬Ä18?œ[
ˆŠ%ˆŠ¿D컌ÖDŽæD5†{|}gõ~Œ
  %ÍÍ1ÔÌ9@
  %ÍÍ1Ù´9@$™'
  %¡Î1ê›9@4Î'
 Ž %¡Î1Ù´9@$Ý(
  %¡Î1Ù´9@$ê)
  %¡Î1Ù´9@,´*
  %¡Î1ø°ú°û°Ðü°ý°þ°ìHˈXêE>·
·
Ê~¹
ä~º
±
Ã:3B@î†3®µ,¸+
 š %¡Î1¨Ê9@,¿
޳š)¿Ø5޳=D
޳)¿Ø5û×=D
¾Â%¾¿ÀêWÁ„XÃì6­fÓ{7ªÀk TlsConnectorÁì@ Ä„"lW>«²î¬êÄ,›£ýyë„ öˆ ˆÅ4 Lå'<— EŒÍo|¹àŽÄu|Ò¨ ³:tãïåU4 ý¨VT‰ ûU´• ÿÃU”­ ûö[T®  ä™\´º  ç˜ÝYLÒ ¾üÝ ü.+ Lightweight, flexible WebSockets for Rust.Áî¬êÄ£ýyë„ öˆ ˆÅ Lå' EŒÍoŽàŽÄu¨ ³:ŒïåU ý¨VŠ ûU ÿÃUˆ ûö[ ä™\ ç˜ÝY¾ÄÇʽÀü/, A buffer for reading data from the network.Á0Ëü4QN The `ReadBuffer` is a buffer of bytes similar to a first-in, first-out queue.Áü†GD It is filled by reading from a stream supporting `Read` and is thenÁüÎ-* accessible as a cursor for reading bytes.Ášžú4ÐGReadÁ$“ IoResultÁD£žBufÁº ü+\^IK4™6T³&üý4˜$  ˜$¼‚ýš
¤áü¸$! Create a new empty input buffer.Áèýš

˜$üì-ü«<9 Create a new empty input buffer with a given `capacity`.Álóýš

˜$capacityÁDü§1üç;8 Create a input buffer filled with previously read data.Áœ®Ù´ýš

˜$partÁ$ÂüÞ+ü´%" Get a cursor to the data storage.ÁLåó  ó ýš ó ”û
 ï
˜$üß 7ü­ -* Get a cursor to the mutable data storage.Álæ ô  ô ýš ô ”û
 ô 
˜$üý
$ü¾
:7 Consume the `ReadBuffer` and get the internal storage.ÁD„ ýšÙ´

˜$$‘ ü’GüÓ
:7 Read next portion of data from the given input stream.ÁL™õ ö  õ ýš ö ¥%ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶£
¥% ¬
©â”ž £ ”ž
˜$”žÈV4·13´ß÷  ÷ ýš
 ë
˜$ü‘<˜$±–¼–ýšäÔø  ø ýš á
˜$ħù  ù ýš ù ²Ð °
˜$üò!ú  ú ýš ý
˜$$‚cntÁˆüÏ@˜$±–¼ÔýšÅ¤–<™ýš
˜$t…»é ì 8 õ7â+ìçü2/ Methods to connect to a WebSocket as a client.Á4@EGHILO¶”$H !WriteÁ,Nß"
SocketAddrÁT`°°$ÈÖLlÆ!%
ToSocketAddrsÁlw‰!& StdResultÁLê³'PartsÁ,À)¸›Ç*Úbã,˜0dŽ Ò/ª-<œ±0¹-D¥²1£‡µ 2ÌWtÛ3£6ý4y7ëlD—¹8Ío|ºà:³:tËï;öˆ <÷‹$è >ˆW<ˆ?LogÁÞ¾t+
set_max_levelÁm€Ó +set_max_level_racyÁ•ÔÙ Ž+ max_levelÁMÍà +set_boxed_loggerÁ…è +
set_loggerÁUÙõ +set_logger_racyÁ}Ý +loggerÁ5éŽ +
__private_apiÁmô”Ÿ+STATIC_MAX_LEVELÁ…ˆ˜ Æ+LevelÁ-ÍŽÍ+MetadataÁE™­Á+RecordÁ5õå®+ LevelFilterÁ]å´ë+
RecordBuilderÁm•‰»+MetadataBuilderÁ}ѵÝ+SetLoggerErrorÁu¯‡õ+ParseLevelErrorÁ}Ó‹ú+²*-º|È+__logÁ-š + log_enabledÁ]³k +
__log_enabledÁmãr
+ __log_loggerÁeµv+ __log_keyÁMˆ{+ __log_valueÁ] †+__log_value_svalÁ…œ‰+__log_value_serdeÁ´Œ+__log_value_errorÁä+ø«Ç+º%»4É+infoÁ%ÖAÊ+ã-ÂMË+traceÁ-[Ì+ü8qÅÈ´· £y|t‹hܰZILÑDüí;>.1!$Ì´´Ó üó öùêí¼²ãÓÖœàÉ0º½­°ü÷ ¿ü–41 Connect to the given WebSocket in blocking mode.ÁËËüÏc` Uses a websocket configuration passed as an argument to the function. Calling it with `None` isÁü³*' equal to calling `connect()` function.ÁÞËüâ*' The URL may be either ws:// or wss://.Áüeb To support wss:// URLs, you must activate the TLS feature on the crate level. Please refer to theÁüóJG project's [README][readme] for more information on available features.Á¾ËüÂMJ This function "just works" for those who wants a simple blocking solutionÁüIF similar to `std::net::TcpStream`. If you want a non-blocking or otherÁüÚ)& custom stream, call `client` instead.ÁËüˆ da This function uses `native_tls` or `rustls` to do TLS depending on the feature flags enabled. IfÁüí `] you want to use other TLS libraries, use `client` instead. There is no need to enable any ofÁüÎ
a^ the `*-tls` features if you don't call `connect` since it's the only function that uses them.Á° Ëü´ B? [readme]: https://github.com/snapview/tungstenite-rs/#featuresÁœþ §'ø°ú°û°Ðü°ý°þ°ìHˈXêE>ûÑê³í³î³Òï³ìð³ñ³ò³ìäs{©¶  öˆÄ Å ÿb¼¾àZÚêW위XžìlӺϛVž©º×Ú³Π§'AA©â†» O†»Œ— 
@†»requestÁ<¯ ÿo4Á 
max_redirectsÁlæ GIü½
¤À
¦Ÿ‹»Ô»
Bó¼
ÿo4ø
ÛB<closure_kind>ÁC<closure_signature>ÁC<upvars>ÁCCBCïñòÑ:óìôõñ:öì¯k…ä™õ=ïààÍoâìoãÿoäpÁ¤Õc¤êà¼Πü‰6û ü  û  ¥œƒŸuriÁžªŸ±0 
extensionsÁ¡âªˆ'°a ýò¨ ü ®œ¦Ÿ ¢
DpartsÁ,ÔÀªüà%wü¶ 4бë Ëüï *ü²üš!SP To support wss:// URLs, feature `native-tls` or `rustls-tls` must be turned on.Áî!Ëüò!Mû´üÀ"IѵüŠ#)£¶´#Ëü¸#dà¶ü$`Í·üþ$a¶¸<ç%†»Ô»§'FFʽï%Û½Œô%
E†»ó¼<Œ&ü‡'H|Š'ý þ  ý
°°±°²°V4Á³°ì´°µ°V6Á¶°ìvÏPBí˜ þ ®œê³í³î³Òï³ìð³ñ³ò³ìäs{©¶º×Π ¡'
GaddrsÁ,š'ÔÀ°'ü¡+*üÏ)" Get the mode of the given URL.Áò)Ëüö)HE This function may be used to ease the creation of custom TLS streamsÁü¿*a^ in non-blocking algorithms or for use with TLS libraries other than `native_tls` or `rustls`.ÁD¨+ÿ  ÿ ®œê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ÝÖΠ ¶+
HÔÀ±+üû/…üÿ,b_ Do the client handshake over the given stream given a web socket configuration. Passing `None`Áüâ-=: as configuration is equal to calling `client()` function.Á .Ëü¤.KH Use this function if you need a nonblocking handshake support or if youÁüð.XU want to use a custom stream like `mio::net::TcpStream` or `openssl::ssl::SslStream`.ÁüÉ/1. Any stream supporting `Read + Write` will do.Á”‚0§'€¹‹»ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ŒÓÚ³ïñòÑ:óìôõñ:öì¯k…ä™õ=ïààÍoâìoãÿoäpÁ¤Õc¤ê€¹¸(J§'KJK©â€¹4•0©â—Î0 €¹$×1߀¹,Þ1O—ÎŒî1
I€¹—Îó¼<§0ÈV4¹0ÿo4Í0ikegüì4ÔüÞ22/ Do the client handshake over the given stream.Á3Ëü•3K—Ëüá3XëËüº41ÌÌ4ó4—΀¹¢Î¸(M§'NMN®Ð4ú4¿Ð‚5ÐÐ$—6àÐ,ž6ðÐŒ®6
L€¹—Îó¼<Œ5ÈV4ž5ACFHÜæ;üô6WT Trait for converting various types into HTTP requests used for a client connection.ÁÌ7ËüÐ7`] This trait is implemented by default for string slices, strings, `url::Url`, `http::Uri` andÁü±8a^ `http::Request<()>`. Note that the implementation for `http::Request<()>` is trivial and willÁü“9_\ simply take your request and pass it as is further without altering any headers or URLs, soÁüó9a^ be aware of this. If you just want to connect to the endpoint with a certain URL, better passÁüÕ:da a regular string containing the URL in which case `tungstenite-rs` will take care for generatingÁüº;+( the proper `http::Request<()>` for you.ÁŒð;OOªâüæ;ŸO©Ù©ÙPPPüÓ<0üˆ<FC Convert into a `Request` that can be used for a client connection.ÁœÖ<±Ùê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¦ŸΠOO
P±Ù$ê<ü‡=&—)RRÕ›SPSŒ=ü´=/œ·=Õ›ÏÚQQ
S—)$Ë=ü¢>)—)UUä›VPV§>üÒ>/œÕ>ä›ÏÚTT
V—)$é>üÌ?!ê›XPXüô?/œ÷?ê›ÏÚWW
X$@üï@&—)ZZ¨œ[P[ô@üœA/œŸA¨œÏÚYY
[—)$³Aô‚B®œ]P]ü§B/œªB®œÏÚ\\
]$¾B,úC]¾^§¾^ľ^^]^»å »å»D]¾_§¾_ľ__]_»å¢àüŸH&—)aa¤bPb¤HüÌH/œÏH¤ÏÚ``
b—)$ãHô³IªdPdüØI/œÛIªÏÚcc
d$ïIü¿J"¦ŸfPfüèJ/œëJ¦ŸÏÚee
f$ÿJü´K<•*hž*ihiðŸjPj¹K½Kü÷K/œúKðŸÏÚgg
j•*ž*$ŽLüµL'dÐLl•œ
 Error handling.Á,£íØÒioÁ
çlnÛ
4#
Yloœ+
å2lpstringÁ40
Ü3lqx$_
Ù lsë„<e
 
ErrorTraitÁT„ÏŒÜÍï+ŒÝ¶” Œß¤ßŒàDigestÁ4¿ŒâSha1Á$Ç7=Œãâp„ãìŒå§q\õóŒæÇr\‚ƒ Œçž3DŒè£Œét"ì Client handshake machine.Á4*±²¼Òàè¶”$3 ¤,9ß PhantomDataÁ\M«óŠ·­Tvâ°µL‚à HttpRequestÁ\˜ HttpResponseÁd±ˆ 
StatusCodeÁT¿ž˜ï{4Ü6Ž<Œ‚ œö0d£Ýžã0\± ÜŸâp„Íì¡Çr\߃ ¢ž3Dì£Ù;lû¤¼vdг ¥w„˜º ¦£©×dlÍíªýy«ëlD乬:$þ¥ ®öˆL„ ¯£‡|µ °ا÷'tšï§ê' 𑍨' Žš¸¨Ï' šÖ¨¿' šû¨µ' šš©¦' 𾩠' šÙ©“'Ÿšû©ƒ' Æš ª~'Íšºªv'Ášתp'®šòªe'ëš’«X'»š´«I'ݚث;'õšû«,'úš²*+'Èš´¬'' šͬ' šì¬'
š­'š­­þ&šÊ­ô&šê­ä&š®Ó&šµ®Â&šøÁ&ÇšºÁ&Éš…¯¾&Êšã¾&Ëš³¯º&Ìšü#8 ùüœEãübj”n°³<šdg„ÒYèüõQT DG58(+

ûþìïÝàü±qÕØÆÉ·º©¬œŸŒ|„¾Ä¥ Client request type.Á<ǦŸŒýÌã Client response type.ÁD†Ú³üß(¥%´´©â޳ ä ޳ß޳ɲµ+-ü³üŽ  Initiate a client handshake.Á,º޳¦Ÿ‹»ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶³ ³ ¼vµ ØvŒÉ1ŒZ‘7\ÖɲΠ³³
µ޳ÈV4Éó¼ÿo4öü©:¥%··È€ ®Ù€é€ɲ¸¹º»ƒ»8:ŒêÚ³œŒt‘޳„©  öˆÄ Å ÿb¼¾àZÃ޳Ú³üÚ·   ɲƒ êrÛ
ˆ ÈVsŠ ™sŒ ì‡.pºfœ=`ɲƒɲê³í³î³Òï³ìð³ñ³ò³ìäs{©¶º ½ ¾ }¿ ìÀ Á ½w ìpU]ZQÛ’Ÿ§†ɲΠ õ
»޳finishÁ4ˆüãJüíur Verifies and generates a client WebSocket request from the original request and extracts a WebSocket key from it.Á„ꦟê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Ù´ê›Π
¼ó¼<ÿÔé üŸ"Œ¥¯Š ¿Ö ¼¾À§¾ÀľÀÀ¼ÀΠä'¼¾Á§¾ÁľÁÁ¼Á¼‹¢àþ+¼¾Â§¾ÂľÂ¼¢à꛵/¼¾Ã§¾ÃľÃüà ꛢà|Õ5¦³Åüë5E|ò5   ¦³Ú³ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Ú³ΠÄ ‚6Ä
Å$ƒ6responseÁD‰6Í;žƧ¾ÆľÆÆÅÆ §·ø°ú°û°Ðü°ý°þ°ìHˈXêE>»åó;žǧ¾ÇľÇÇÅÇ»å†@žȧ¾ÈľÈÈÅȬ@žɧ¾ÉľÉÉÅÉ‘“Džʧ¾ÊľÊÊÅʘ  ¦³Ô®KÚ³ÌÌüÏK9LÒK   ²Ðê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>Ú³ΠË áKË
Ìì³ÜK\¾LÌÌü¸NF•*Ïž*ÐÏО*•*ÅNÚ³ÑßѽNÁNü…OAlˆOεºŽÎÎ
Ñ•*ž*@–OüŽUüÐT=: Generate a random key for the `Sec-WebSocket-Key` header.Ád•Uê›
Ò·V|2ü.+ HTTP Request and response header handling.Á<:ÜݰµLCàÔÖ·­TNâÔ×Ñ­\Z­ÔØï{4v6ÔÙž3D“ÔÚýyÔÛü42|~kmZ\„lMă?¤¡0äâü¸)& Limit for the number of header lines.Á\ìü¾'ÝÞÝÞ©â±Ù©â ÜÝ—›+—›ßß*,ü¡)°›ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶±ÙΠÝÝ
ß±Ù°›@²üÎGž*á•*ââáž*•*צ¶ãßãÓÛüœAî·ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¦¶Πàà
ãž*
= çéû¨= çéš©ñ< ç龩ë< çéÙ©Þ<Ÿçéû©Î< Æçé ªÉ<Íç麪Á<Áçéת»<®çéòª°<ëçé’«£<»çé´«”<Ýç騫†<õçéû«w<úçé²*v<Èçé´¬r< çéͬh< çéì¬\<
çé­Q<çé­­I<çéÊ­?<çéê­/<çé®<çéµ®
<çéø <Ççéº <Éçé…¯ <Êçéã <Ëç鳯<ÌçéT&o6ôBdgUXFIügb>A03!$¼ŸüÜ%¸(öö®ÐǸ÷øúûü²)üˆ%" Start reading data from the peer.ÁT¹€¹Ǹõõ
÷€¹ÈV4ÄüïEüÇ# Start writing data to the peer.Á\ö€¹Ë2ǸõË2ùùõ©â›« ÷›«Ù´l…
ø€¹›«ÈV4”°ƒ68ü× üŸ30 Returns a shared reference to the inner stream.Á<Þ   Ǹ  €¹õ æõ
ú€¹üÒ(ü™41 Returns a mutable reference to the inner stream.Á<Ù   Ǹ  €¹õ áõ
û€¹üŸ3¸(ýý®ÐÐÐàÐǸþüƒ PüÙ%" Perform a single handshake round.ÁdŠ Ǹê³í³î³Òï³ìð³ñ³ò³ìäs{©¶óö÷Êqøìùúéqûìüýˆrþì/ÚÛïǺ/Ý“3€¹Πü“3ÿÿü©â›±›±
þ€¹›±(*Ì€"Ìæ! The parseable object.ÁDŠ"—›,”"—›—›üÜ";ü "74 Return Ok(None) if incomplete, Err on syntax error.ÁLß"   ²Ðê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>±ÙΠ ï"
±Ù°ƒ$é"„³'Ä»ƒ„‚(…(çÄ»
ƒüä)CÔç)ç   Ä»ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Π ‚*
$‡*è$*´,L£,çÄÅ,\Ë,çäí,|ó,çü™-'ÔŸ-çtTì Server handshake machine.Á4\®¯°±º»¾È¨   ¡ ìã$3猶”$9 ¤,?ߎ«ó\S«óŠƒ¥Lvê³BuilderÁ<Ÿš°µà‹ô«ôˆ Ìôžï{4‚6Ž<Œ¨ šö0dÉÝœã0\× Üâp„óìŸÇr\…ƒ  ž3D’¡Ù;l¡¢¼vd°³ £w„¾º ¤£§×dlóí¨ý4‚y©:$𥠫öˆ ¬£‡µ ­ا4Jt˜ï§'J ˜‘¨J Ž˜¸¨ J ˜Ö¨üI ˜û¨òI ˜š©ãI ˜¾©ÝI ˜Ù©ÐIŸ˜û©ÀI Ƙ ª»I͘ºª³IÁ˜ת­I®˜òª¢I똒«•I»˜´«†IݘثxIõ˜û«iIú˜²*hIȘ´¬dI ˜ͬZI ˜ì¬NI
˜­CI˜­­;I˜Ê­1I˜ê­!I˜®I˜µ®ÿH˜øþHǘºþHɘ…¯ûHʘãûH˘³¯÷H̘ü#_ý.îñßâœKÓtd®ü‰iŒ•žŽp]`„øRŽü›JM =@.1!$ô÷åèÖÙü×gÎѿ°³
" Generic WebSocket message stream.ÁŠÉéµ Â ¥ É Ò Ê~T[
·
¬ë„<p
 {L¥
ƒ
OpCtlÁ,»
î šOpDataÁ4Ê
Ù ów4Ò
Ç œù€
Û
­™‚
ï
žÛƒŒ‹
ü
 ±K¬ž
í¡
£¤×dlÙ
í¥ý
y¦À]Œû
ø§ IoErrorKindÁ\¾
¥H«¶”
 ¬¤
ß­replaceÁ<â
³®ا9qt¨ï§,q ¨‘¨q ލ¸¨q ¨Ö¨q ¨û¨÷p ¨š©èp ¨¾©âp ¨Ù©ÕpŸ¨û©Åp ƨ ªÀpͨºª¸pÁ¨ת²p®¨òª§p먒«šp»¨´«‹pݨث}põ¨û«npú¨²*mpȨ´¬ip ¨ͬ_p ¨ì¬Sp
¨­Hp¨­­@p¨Ê­6p¨ê­&p¨®p¨µ®p¨øpǨºpɨ…¯pʨãp˨³¯üǫl'
ü0- Utilities to work with raw WebSocket frames.Á,/
ȕ
è
©cl•ØŠ £Š¡ýyŠ¢ë„ Š£²^TÁФIoErrorÁ<󠊧«‰\‰¥HЍ¶”$– Š©¤ßŠªÊ~T»·
¬ù€Û
­ÙÉ
®ا@utŠ¥ï§3u Š¥‘¨!u ŽŠ¥¸¨u Š¥Ö¨u Š¥û¨þt Š¥š©ït Š¥¾©ét Š¥Ù©ÜtŸŠ¥û©Ìt ÆŠ¥ ªÇtÍŠ¥ºª¿tÁŠ¥ת¹t®Š¥òª®t능’«¡t»Š¥´«’tÝŠ¥Ø«„tõŠ¥û«utúŠ¥²*ttÈŠ¥´¬pt Š¥ͬft Š¥ì¬Zt
Š¥­OtŠ¥­­GtŠ¥Ê­=tŠ¥ê­-tŠ¥®tŠ¥µ® tŠ¥ø
tÇŠ¥º
tÉŠ¥…¯tÊŠ¥ãtËŠ¥³¯tÌŠ¥t2ü&# Various codes defined in RFC 6455.Á4:Ù î Ç ƒ
ž$Aúް$G÷ÍRï+Ñ
¯Ñ
¯¹{$ñ
¯¹{
¯îaD݈
¯îa
¯×{\ߊ
¯×{
¯ï{4ÃŒ
¯ï{
¯|DŸ"Ž
¯‚|
¯—|<£$
¯—|
¯«|4'
¯«|
¯¾|$±(
¯¾|
¯Ï|L,
¯Ï|
¯,Ë-˜
¯
¯ò|<„/š
¯ò|
¯†},è0œ
¯†}
¯¹a†1ž
¯¹aŸ
¯§yö 
¯§yö¡
¯º}C€£
¯º}C€¤
¯Ó}¦
¯Ó}§
¯ï}Ý€©
¯ï}Ý€ª
¯ü,,36%(Ô£˜Áæ`üÄ4Çœ  ž  œ ˜Á  Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•ž Çø Ë
þ Òìú ÃÂæ`üž
4¡
Ÿ   ¡  Ÿ à  Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•¡ Çø ¥


þ ¬
äÙ ƒÀæ`üü 4ÿ ¢ £ ¤  ¢ ƒÀ £ Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•¤ Çø ƒ

$„
þ Š
ı˜ü˜ìЃÀ
˜ä~$Øüü~ÄʃÀ¤ü¤ÜéƒÀ££
¤byteÁ$ñü“~tœ2¬Ä±üÝ2ü±2'$ Check if this CloseCode is allowed.ÁTä2¬Ä°°
±$ï2üÐ3¬Ä³æ`³üö34ù3¥ ¦ §  ¥ ¬Ä ¦ Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•§ Çø² ý3²
³$þ3þ „4äù4µüµüœ5$Ÿ5¬Ä´´
µä~$¤5üù9$Ù>··¸ü¸þ9ü¤:#$§:ïÇ
¸Ù>ä~$¬:äê:¬Äºüºü;$;¬Ä¹¹
ºä~$•;Lf,jŠˆ·
Û
É
ByteOrderÁL»½
NetworkEndianÁl>€»¾ ReadBytesExtÁd*>»¿
WriteBytesExtÁl8>j»Àkº»Ã<}Ļį»ÄÍŠï+»ÅžúÐG»Ç ErrorKindÁL ¥H»È¶” »É¤ß»Êƒ¥ê³»Ë“©ƒÄ»Ìö©ÖH»ÎÉH»Ï›{L±ƒ
»Òšx<¼î »Óx$ÅÙ »Ôów4ËÇ »ÕöBTß ˜»×ÏElë »Ø,‘£»Ú×dl˜í»Ûýy»Üاêƒt»Áï§݃ »Á‘¨˃ Ž»Á¸¨ƒ »ÁÖ¨²ƒ »Áû¨¨ƒ »Áš©™ƒ »Á¾©“ƒ »ÁÙ©†ƒŸ»Áû© Æ»Á ªÍ»ÁºªÁ»Áת®»Áòªë»Á’«»»Á´«Ý»ÁØ«õ»Áû«ƒú»Á²*ƒÈ»Á´¬ƒ »Áͬƒ »Á쬃
»Á­ù‚»Á­­ñ‚»ÁÊ­ç‚»Áê­ׂ»Á®Æ‚»Áµ®µ‚»Áø´‚Ç»Áº´‚É»Á…¯±‚Ê»Á㱂˻Á³¯­‚Ì»ÁüBñôÖÙ¼¿¢¥LüX¼\c „tmp_bGJ7:'* ?ùüêíü›aâåÓÖÄǵ¸¨«œü‚,ƒqt¼œÙ>ÞÞÈß¡üß.üº  Convert into a owned string.ÁTæÈ·
·
Ê~¹
ä~º
±
Ã:3B@î†3ÝÝ
ßÙ>üé(Ù>ááÈâæ`âîü˜4¨ © ª  ¨ È © Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•ª Çøà Ÿà
âÙ>þ ¦äÈ ‹ÉäÅä¤ë  ‹Éãã
ä„ߋɿèéëü³Rüö(% Parse a header from an input stream.Áü£SP Returns `None` if insufficient data and does not consume anything in this case.Áüû30 Payload size is returned along with the header.Á,º«  « ÐGÐGžúÒGÒ¨ÓGºú8p nèÊø÷@ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>‹ÉΠå÷@çç Èå©â€¾„Ôñ€¾²Ð
怾cursorÁ4À/1üî'üûC@ Get the size of the header formatted with given payload length.Áõ¬  ¬ ‹Éå ùå
èlengthÁ4€ü¸Hüˆ+( Format a header for given payload size.Á4¿­ ®  ­ ‹É ® ŸA³¶åŸAêê Æå©â´Âß´Â
é´Â³ÀoutputÁ4Ú;=üÕ(¯  ¯ ‹Éå óå
넳‹ÉíüÎH»°  ° ãA†¾ìãAîî èì©âÎÄ ÎÄ
íÎÄ÷¾&( Ú íí þ*ííTí0¨Êòóôõö÷øùúûüýþÿƒÔ÷1üþ0  Get the length of the frame.Áü£1A> This is the length of the header + the length of the payload.Áþ1±  ± ¨Êñ ‚2ñ
ò$ƒ2ô«3üø2  Check if the frame is empty.ÁD²3²  ² ¨Êñ »3ñ
ó$¼3ü¬4$üï3*' Get a reference to the frame's header.Á4³4³  ³ ¨Ê ³ ‹Éñ º4ñ
ô$»4ü¸50üó42/ Get a mutable reference to the frame's header.ÁT¿5´  ´ ¨Ê ´ ‹Éñ Ê5ñ
õ$Ï5üÍ6!ü6+( Get a reference to the frame's payload.Á<Ô6µ  µ ¨Ê µ Ù´ñ Ü6ñ
ö$Ý6üØ7-ü’730 Get a mutable reference to the frame's payload.Á\ß7   ¨Ê  Ù´ñ ë7ñ
÷$ð7üå8&Ló8·  · ¨Êñ ý8ñ
ø$þ8ü”;(|¢;¸  ¸ ¨Êñ ²;ñ
ù$·;ü¾=#TÌ=¹  ¹ ¨Êñ ×=ñ
ú$Ü=ü£?!üß>1. Consume the frame into its payload as binary.ÁLª?¨ÊÙ´ññ
û$´?ü«@<üç?1. Consume the frame into its payload as string.Á\²@¨Êê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ê›ìªññ
ü$¾@üÐA0üA  Get frame payload as `&str`.Á<×Aº  º ¨Êê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ º ‡ªñ ßAñ
ý$àAü÷BET…C¨Êê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>œ¸Πññ
þ$Cü½GFäŽG Create a new data frame.Á<ÄGÙ´ƒÀ¨Êññ
ÿ°ƒ$ÌG €4ÛGìDëGü‰J#üÒI$! Create a new Pong control frame.Á$JÙ´¨Êññ
°ƒ$•Jü¸L#üL$! Create a new Ping control frame.Á$¿LÙ´¨Êññ
°ƒ$ÄLüèN.ü°N%" Create a new Close
·
Ê~¹
ä~º
±
Ã:3B@î†3» ¨ÊñTOñ
msgÁõNüåRBü²R.+ Create a frame from given header and data.ÁdìR‹ÉÙ´¨Êññ
ƒB4ùR»B<ŽSüýS>ü×S! Write a frame out to a bufferÁ4„T¼ ¨Ê ¼ ´Â³¶ñŸA TñâÂT¢TóÂ,§T
´Â$TÂ4•T%'ÜÜU¨Êæ`üþU4V½ ¾ ¿  ½ ¨Ê ¾ Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•¿ Çø …V
$†Vþ ŒVŒ„[d‰[»׃5†{|}gõŠŒŽŠ׃**»ˆˆ
Š**»׃ˆˆˆßŸ[»ˆˆ¨[»ˆˆ׃»ˆˆ׃±[»ˆˆ׃»ˆˆ׃Œ¹[׃ü”\"T—\»׃
³À4¢\ô¾^\Á^»À  À ׃ Í^
$Î^ܧ`\ª`»Á  Á ׃ ¶`
$·`ì§bDªb»׃
§¥$³bDq$uŠ˜šœü,!l3
 Kü‰0T   ²Ðæã  
˜ì³ÃE$« ü“5œ–à  à ²Ðæã ¯
šì³ªÃE$º Åüô7ŒûÄ  Ä ²Ðæã 
œì³ÃE$ ¨ü€NÂ*Å*³*¶*¤*§*•*˜*~**ÔüàBu*Lüf*S*V*C*F*ü­-9*<*,*/* *#*ü¼ ¸(°°®Ð¥Ë±²³´µü†"ôã Create a new frame socket.Á€¹¥Ë¯¯
±€¹ÈV4‘ü«Aüï74 Create a new frame socket from partially read data.Áœ²€¹Ù´¥Ë¯¯
²€¹ÈV4Æטüñ,üÇ%" Extract a stream from the socket.ÁTø¥Ë€¹Ù´¯¯
³€¹üš üâ3¢«Å  Å ¥Ë Å €¹¯ © ¯
´€¹ü–
(üÝ 4Á¬<
Æ  Æ ¥Ë Æ €¹¯ ¥
¯
µ€¹
üã
8¸(··®Ð
ÐÐ$– ¥Ë¸üÄ Hì¢  Read a frame from stream.Á$Ë Ç  Ç ¥Ëø°ú°û°Ðü°ý°þ°ìHˈXêE>ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>¨ÊΠ Ð 
¸€¹ ÈdDÛ üÒ 9¸(ºº®Ð àÐ,…
¥Ë»¼½ü”2ü’
+( Writes and immediately flushes a frame.ÁüÂ
MJ Equivalent to calling [`write`](Self::write) then [`flush`](Self::flush).Á$È  È ¥Ë¨Ê³¶¹  ¹
»€¹Å<,«üØ3ä… Write a frame to stream.Á¦Ëü®OL A subsequent call should be made to [`flush`](Self::flush) to flush writes.ÁËüŠWT This function guarantees that the frame is queued unless [`Error::WriteBufferFull`]Á„æ
is returned.ÁüûXU In order to handle WouldBlock or Incomplete, call [`flush`](Self::flush) afterwards.Á,ßÉ  É ¥Ë¨Ê³¶¹ å¹
¼€¹Å<,ðüè%ŒÒ Flush writes.Á,ïÊ  Ê ¥Ë³¶¹ õ¹
½€¹ëË¿ÀÁÂÃÅÇÜ´Âë˾¾
¿üê8œøÙ´ë˾¾
ÀטüÆ;´ÔË  Ë ë˾ ë¾
ÁmaxÁöüž =Ĭ Ì  Ì ë˾ Å ¾
¾ Ð üÁ!±TÏ!Í Î  Í ëË Î €¹çí­î¾¸(ÄÄ ë!¾®Ð4Ú!ÐÐ$í"
À¹$ð!ÈV4þ!ÈdD",.üô3d4Ï Ð  Ï ëË Ð €¹¨Ê³¶¾¸(ÆÆ —4¾®Ð44àÐ,í4
Å€¹$œ4ÈV4¢4Å<,·4,.ü¿9u„Í9Ñ Ò  Ñ ëË Ò €¹³¶¾¸(ÈÈ æ9¾®Ð4Þ9àÐ,®:
Ç€¹$ë9ÈV4ñ9$&\7
<;
Úí ü
N, ñÉÌž$ úÉͰ$& ÷ÉΤ<, ÉÏÍ: ï+ÉЃ¥LU ê³ÉÑœd å2ÉÒÊ~T€ ·
ÉÔ¬ù€ Û
ÉÕ­©cl§ ØÉ× £ÉØý yÉÙ™ƒ ÷
Éæüf 

üþìîÜÞtC λ½üq! ¯±›ü˜, xzgi”Ç  É÷
DecodeErrorÁ\ê ?XÚÛ, £ÚÝý4– yÚÞŒä >ì€ 02!¤¥ ÔÌàáãå¤Ä Ë ÔÌßß
àÔ´ » Ó  Ó ÔÌß ¿ ß
á ² á¾â§¾âľââáâ?k?kéq?ló#?n
buffer_lenÁêØCë¬ –üî? 4õ Ô  Ô ÔÌÌÖ³¶ßää Œ ߺç ü ñÌÖ²Ð\ÿ
ãÌÖ$ s$— 02üó* \ú ÔÌê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ê›Πßß
å$† üÄ% 3´â —Íèéêìü“7 š íîïÎKðñßKàŸîOg§—Íçç
è message_typeÁdž ÔÝ ä Õ  Õ —Íç è ç
é üÞZ 4å Ö  Ö —ÍÌÖçí³¶çëë ü çºç ì Ä
êÌÖ$ s$‡ 
size_limitÁT 68ü×"( DÞ" —Íê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¡ÎΠçç
ì$ç" ô½% ¬Æ% Ò†àŸîOg§îïðñïñ$â% ííÒ†ííÒ†4ì% ííÒ†ííÒ†dÉ+ ¡Îóõ÷øùúûüþÿü›,G üÜ+: 7 Create a new text WebSocket message from a stringable.Á$¢, ޳¡Îò¥%ôôòÈ€ §, ÷޳ê›dÕ,
ó޳¤ä4ª, *,üã-G ü™-E B Create a new binary WebSocket message by converting to `Vec<u8>`.Á4ê- ™L¡Îò™Lööò©â㎠ñ- ÷ãŽÙ´lœ.
õãŽçô- )+ì—/ üà.2 / Indicates whether a message is a text message.Á<ž/ ×  × ¡Îò ¦/ ò
÷$§/ ü¥0 üì/4 1 Indicates whether a message is a binary message.ÁL¬0 Ø  Ø ¡Îò ¶0 ò
ø$·0 ìµ1 üþ02 / Indicates whether a message is a ping message.Á<¼1 Ù  Ù ¡Îò Ä1 ò
ù$Å1 ìÁ2 üŠ22 / Indicates whether a message is a pong message.Á<È2 Ú  Ú ¡Îò Ð2 ò
ú$Ñ2 ôÎ3 ü–33 0 Indicates whether a message is a close message.ÁDÕ3 Û  Û ¡Îò Þ3 ò
û$ß3 ÔÖ4 ü¥4, ) Get the length of the WebSocket message.ÁÝ4 Ü  Ü ¡Îò á4 ò
ü$â4 7 ü¾ý§¾ýľýýüý ‘‰ôü8 üï79 6 Returns true if the WebSocket message has no content.Áü­8J G For example, if the other side of the connection sent an empty string.ÁDƒ9 Ý  Ý ¡Îò Œ9 ò
þ$9 üü9! üÀ97 4 Consume the WebSocket and return it as binary data.ÁLƒ: ¡ÎÙ´òò
ÿ$: üã=( ü–=H E Attempt to consume the WebSocket message and convert it to a String.ÁLê= ¡Îœ…òò
$ô= ü§B% ü·A5 2 Attempt to get a &str from the WebSocket message,ÁüñA1 . this will try to convert binary data to utf8.Á<®B Þ  Þ ¡Îê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ Þ Πò ¶B ò
$·B ìñE ¡Îƒüƒü•F $˜F ꛡÎ
ƒ¤ä4F üÞF" ¸M¡ÎüãF ü‡G $ŠG ˜Ð¡Î
¸M¤ä4G üÑG# ž*ˆˆ¡ÎüÖG üûG $þG ¬Ð¡Î
ž*°ƒ$ƒH ôÄH ¡ÎüôéH $ìH Ù´¡ÎŠŠ
°ƒ$ñH ô±I Ù´üüÖI! $ÙI ¡ÎÙ´ŒŒ
ª
<ÞI üŸJ ꛃTÆJ ,ËJ ŽŽΠüßJ; DâJ ¡Îê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ê›ê›¡ÎƒŽŽ
˜,ëJ ìÀK ¡Îæ`üäKB çK ß à á  ß ¡Î à Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•á Çø ëK 
$ìK þ òK üM+
ŒT
kN„g
[Nü¸
VNYN<°
FN$Â
2N N#NNNüMÿM/îMñMßMâMü½R
×MÚMÈMËM¹M¼M¼õ
¯M
ü¡K

¡MŽMM~MMdÝ
lMüÏ
ûѰۤö

ûѯ¯
°¤Ø
ûѲü˜!

â  â ûѱ ³
±
²$´
ôú!
¸(´´®Ð4ÿ!
ŒÓµ·¸¹»¼½ "üÜ%[
üŸ"I
F Convert a raw socket into a WebSocket without performing a handshake.Áí"
Ëüõ"O
L Call this function if you're using Tungstenite as a part of a web framework矃#K
H or together with an existing one. If you need an initial handshake, useÁü™$N
K `connect()` or `accept()` functions of the crate to construct a websocket.Áì$
Ëdô$
# PanicsÁü…%R
O Panics if config is invalid e.g. `max_write_buffer_size <= write_buffer_size`.Á|ã%
€¹öЋ»ŒÓ³³
µ€¹ÈV4ó%
Øv$ƒ&
ÿo4&
üÕ*•
ü˜'I
䤾'
Ëüî'O
æ§üÂ(K
¾¨ü’)N
’©å)
Ëdí)
ó©üþ)R
ˆªœÜ*
€¹Ù´öЋ»ŒÓ³³
€¹ÈV4ù*
ט$+
Øv$¨+
ÿo4¼+
üº-
ü‚-3
¢«<Á-
ã  ã ŒÓ ã €¹³ É-
³
·€¹$Ê-
üµ.(
üü-4
Á¬<¼.
ä  ä ŒÓ ä €¹³ Ä.
³
¸€¹$É.
ü–0I
ì„/
 Change the configuration.Á¦/
Ëd®/
ó©ü¿/R
ˆªT0
å  å ŒÓšP³šPºº ¨0
³©âÙ°ü½0!
æ Ù° æ ûÑäÂ0
æ Ù°§±
¹€¹Ù°$­0
set_funcÁD³0
giü·1,
Ü—1
 Read the configuration.ÁT¾1
ç  ç ŒÓ ç ûѳ É1
³
»€¹$Ê1
ô…4
ü“2-
* Check if it is possible to read messages.ÁÅ2
ËüÍ2V
S Reading is impossible after receiving `Message::Close`. It is still possible after矬3X
U sending close frame since the peer still may send some data before confirming close.ÁDŒ4
è  è ŒÓ³ •4
³
¼€¹$4
üå5
üÑ4.
+ Check if it is possible to write messages.Á„5
ËüŒ5T
Q Writing gets impossible immediately after sending or receiving `Message::Close`.ÁLì5
é  é ŒÓ³ ö5
³
½€¹$÷5
ü±6,
¸(¿¿®Ð4¶6
ÐÐ$¾6
àÐ,Å6
ŒÓÀÁÂÃÄÅÆÇ02üÃ<)
üä6,
) Read a message from stream, if possible.Á•7
Ëü7N
K This will also queue responses to ping and close messages. These responsesÁüð7I
F will be written and flushed on the next call to [`read`](Self::read),Áü¾85
2 [`write`](Self::write) or [`flush`](Self::flush).Áø8
Ëä€9
 # Closing the connectionÁü¡9M
J When the remote endpoint decides to close the connection this will returnÁüó93
0 the close message with an optional close frame.Á«:
Ëü³:O
L You should continue calling [`read`](Self::read), [`write`](Self::write) orÁü‡;b
_ [`flush`](Self::flush) to drive the reply to the close frame until [`Error::ConnectionClosed`]Áüî;P
M is returned. Once that happens it is safe to drop the underlying connection.Á$Ê<
ê  ê ŒÓˉ¾ Ï<
¾
À€¹$Ô<
üª>6
ü¦=-
* Writes and immediately flushes a message.矯=M
þï$±>
ë  ë ŒÓ¡Î³¶¾ ¶>
¾
Á€¹$»>
ª
<Á>
üÛP7
ü¡?8
5 Write a message to the provided stream, if possible.ÁÞ?
Ëüæ?O
çñº@
ËüÂ@I
F In the event of stream write failure the message frame will be storedÁüAU
R in the write buffer and will try again on the next call to [`write`](Self::write)ÁôêA
 or [`flush`](Self::flush).ÁB
蟥B^
[ If the write buffer would exceed the configured [`WebSocketConfig::max_write_buffer_size`]ÁüøBL
I [`Err(WriteBufferFull(msg_frame))`](Error::WriteBufferFull) is returned.ÁÉC
蟄CW
T This call will generally not flush. However, if there are queued automatic messagesÁü­D-
* they will be written and eagerly flushed.ÁßD
ËüçD\
Y For example, upon receiving ping messages tungstenite queues pong replies automatically.ÁüÈE[
X The next call to [`read`](Self::read), [`write`](Self::write) or [`flush`](Self::flush)矬Fa
^ will write & flush the pong reply. This means you should not respond to ping frames manually.ÁŽG
Ëü–G]
Z You can however send pong frames manually in order to indicate a unidirectional heartbeatÁüøG\
Y as described in [RFC 6455](https://tools.ietf.org/html/rfc6455#section-5.5.3). Note thatÁüÙH\
Y if [`read`](Self::read) returns a ping, you should [`flush`](Self::flush) before passing矼I[
X a custom pong to [`write`](Self::write), otherwise the automatic queued response to theÁüšJM
J ping will not be sent as it will be replaced by your custom pong message.ÁìJ
ËdôJ
# ErrorsÁü…KZ
W - If the WebSocket's write buffer is full, [`Error::WriteBufferFull`] will be returnedÁüäK5
2 along with the equivalent passed message frame.ÁüžLf
c - If the connection is closed and should be dropped, this will return [`Error::ConnectionClosed`].Áü‰M^
[ - If you try again after [`Error::ConnectionClosed`] was returned either from here or fromÁüìM_
\ [`read`](Self::read), [`Error::AlreadyClosed`] will be returned. This indicates a programÁÌÐN
 error on your part.ÁüîNM
J - [`Error::Io`] is returned if the underlying connection returns an errorÁüÀO3
0 (consider these fatal except for WouldBlock).ÁüøO^
[ - [`Error::Capacity`] if your message size is bigger than the configured max message size.Á,âP
ì  ì ŒÓ¡Î³¶¾ èP
¾
€¹$íP
ª
<óP
ü›S%
΅Q
†õìQ
ËüôQR
O Ensures all messages previously passed to [`write`](Self::write) and automaticÁüËRK
H queued pong responses are written & flushed into the underlying stream.Á,¢S
í  í ŒÓ³¶¾ ¨S
¾
À¹$­S
üí\?
ÌûS
 Close the connection.Á™T
Ëü¡TA
> This function guarantees that the close frame will be queued.ÁüçT?
< There is no need to call it again. Calling this function isÁü«U4
1 the same as calling `write(Message::Close(..))`.ÁäU
ËüìUU
R After queuing the close frame you should continue calling [`read`](Self::read) or矮VF
C [`flush`](Self::flush) to drive the close handshake to completion.ÁW
蟪WM
J The websocket RFC defines that the underlying connection should be closedÁüëWD
A by the server. Tungstenite takes care of this asymmetry for you.Á´X
Ëü¼XH
E When the close handshake is finished (we have both sent and receivedÁü‰YP
M a close message), [`read`](Self::read) or [`flush`](Self::flush) will returnÁüÞY=
: [Error::ConnectionClosed] if this endpoint is the server.Á Z
蟬ZH
E If this endpoint is a client, [Error::ConnectionClosed] will only beÁüõZC
@ returned after the server has closed the underlying connection.Á½[
蟁[Z
W It is thus safe to drop the underlying connection as soon as [Error::ConnectionClosed]Áü¤\D
A is returned from [`read`](Self::read) or [`flush`](Self::flush).Á,ô\
î ï  î ŒÓø°ú°û°Ðü°ý°þ°ìHˈXêE>·
·
Ê~¹
ä~º
±
Ã:3B@î†3ï ³¶¾ ú\
¾
Ä€¹$ÿ\
ä~$…]
ü¿^1
üí]&
# Old name for [`read`](Self::read).Á
Use `read`Áü˜^"
dÆ^
“àð  ð ŒÓˉ¾ Ó^
¾
Å€¹$Ø^
üä_?
ü’_&
# Old name for [`send`](Self::send).Á
Use `send`Áü½_"
lë_
¹áñ  ñ ŒÓ¡Î³¶¾ ù_
¾
Æ€¹$þ_
ª
<„`
ü¡a-
üÌ`(
% Old name for [`flush`](Self::flush).Á Use `flush`Áüù`#
l¨a
ìâò  ò ŒÓ³¶¾ ¶a
¾
Ç€¹$»a
©f
ÓÓÉÊËÌÎÏÐÑÓÖØÚÜÞáãüþg?
üÅfD
A Create a WebSocket context that manages a post-handshake stream.ÁŽg
Ëdg
ó©ü§gR
ˆª…h
öЋ»ÓÓÈÈ
ÉØv$‰h
ÿo4•h
üÍj^
ü“iE
B Create a WebSocket context that manages an post-handshake stream.ÁÝi
Ëdåi
ó©üöiR
ˆªœÔj
Ù´öЋ»ÓÓÈÈ
Êט$èj
Øv$÷j
ÿo4ƒk
ü•lK
$˜l
öÐëËûÑÓÓÈÈ
ËØv$l
Å<,­l
ÿo4Àl
üãpI
ìÑo
ì®óo
Ëdûo
ó©üŒpR
ˆªTêp
ó  ó ÓÓšPÈšPÍÍ õp
È©âàéüŠq!
ô àé ô ûÑäq
ô àé®ê
Ìàé$úp
ê°D€q
\^ü¼s,
Üœs
“±TÃs
õ  õ ÓÓ õ ûÑÈ Îs
È
Î$Ïs
ôýu
ü‹t-
™²½t
蟁tV
Ú²ü uX
¹³D„v
ö  ö ÓÓÈ v
È
Ï$Žv
üÛw
üÇv.
ñ´úv
Ëü‚wT
³µLâw
÷  ÷ ÓÓÈ ìw
È
Ð$íw
üÜyn
ü§x9
6 Read a message from the provided stream, if possible.Áåx
Ëüíx?
< This function sends pong and close responses automatically.Áü±y&
# However, it never blocks on write.Á$ãy
ø ù  ø ÓÓ ù €¹ˉȸ(ÒÒ ðy
È®Ð4èy
ÐÐ$½z
àÐ,Äz
Ñ€¹$õy
ÈV4ûy
,.ü|
üæ+
( Write a message to the provided stream.Á–‚
Ëüž‚O
çñò‚
Ëüú‚I
¹ÀüȃU
‹Áô¢„
èÁÅ„
ËüÍ„^
šÂü°…L
Ã,ˆ†
ú û  ú ÓÓ û €¹¡Î³¶È¸(ÔÔ –†
È®Ð4ކ
ÐÐ$ð†
àÐ,÷†
Ó€¹$›†
ÈV4¡†
ª
<¶†
:<
Ó¾Õ§¾ÕľÕÕÓÕ€¹ü‡‘j
Œ¹
†õÏ
Ëü×V
S Ensures all messages previously passed to [`write`](Self::write) and automaticallyÁü²B
? queued pong responses are written & flushed into the `stream`.Á,Ž‘
ü ý  ü ÓÓ ý €¹³¶È¸(×× œ‘
È®Ð4”‘
ÐÐ$ä‘
àÐ,ë‘
Ö€¹$¡‘
ÈV4§‘
13ü½”~
4À”
þ ÿ  þ ÓÓ ÿ €¹ûîê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Πȸ(ÙÙ Ï”
È®Ð4Ç”
ÐÐ$®•
àÐ,µ•
Ø€¹$Ô”
ÈV4Ú”
°ƒ$ï”
;=üƒ¦
Ì›¤
ÄÔ¹¤
ËüÁ¤A
ñÔü‡¥?
»ÕüË¥3
0 the same as calling `send(Message::Close(..))`.Á,Ц



 
ÓÓ 
€¹ø°ú°û°Ðü°ý°þ°ìHˈXêE>·
·
Ê~¹
ä~º
±
Ã:3B@î†3
³¶È¸(ÛÛ ˜¦
È®Ð4¦
ÐÐ$ú¦
àÐ,§
Ú€¹$¦
ÈV4£¦
ä~$¸¦
:<ü½©
”À©
ƒ

 ƒ
ÓÓ 
€¹ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>¡ÎΠȸ(ÝÝ Û©
È®Ð4Ó©
ÐÐ$°ª
àÐ,·ª
Ü€¹$à©
ÈV4æ©
13üžÛ[
D¡Û
ß
 
ÓÓø°ú°û°Ðü°ý°þ°ìHˈXêE>·
·
Ê~¹
ä~º
±
Ã:3B@î†3ßø°ú°û°Ðü°ý°þ°ìHˈXêE>ÑÿȪÛ
È
Þ$³Û
íC,¹Û
 "<ÖÝ
޾৾àľààÞà‘‰‘‰üéå
dìå


 
ÓÓ 
€¹¨Ê³¶È¸(ââ æ
È®Ð4ùå
ÐÐ$Ûæ
àÐ,âæ
္$†æ
ÈV4Œæ
Å<,¥æ
:<üïê(
tòê
ˆ
 ˆ
ÓÓ¨ÊÈ ë
È
ã$†ë
ÒŒë
ˆì
ã¾ä§¾äľääãä ¨Êœ²ð
ÆÔæçèÔ†ñ
L‰ñ
ÆÔåå
æ$“ñ
Ìêó
Díó
ÆÔåå
ç$öó
ü˜õ+
¤›õ
ÆÔ³¶åå
è$°õ
Ô÷
¤£÷
éé©Ùü÷b
é©Ù©Ù êêêü¾÷?
´Á÷
±ÙÆÔ±Ùéé
ê±Ù$Ø÷
,Þ÷
üø*
ììºç †ø
þÕíêíü²ø>
´µø
þÕÆÔþÕëë
íÌÖ$Ìø
,Òø
T…»é ì 8 õ7â+ìç4‰ûýÿÄu|g¨ ï¥8DžÈîò‰uT¨  îó‰u¡ îó³:t¹ïîôöˆ îö£‡µ î÷¶”$ îù¤,•ßîúüM)¾ü}Mµ·¤¦~€üÑ-qs_a´…QS?Aüï©üž+( Accept the given Stream as a WebSocket.ÁÊËüÎa^ Uses a configuration provided as an argument. Calling it with `None` will use the default oneÁ¼° used by `accept()`.ÁÈËüÌLI This function starts a server WebSocket handshake over the given stream.Áü™MJ If you want TLS support, use `native_tls::TlsStream`, `rustls::Stream` orÁüç\Y `openssl::ssl::SslStream` for the stream here. Any `Read + Write` streams are supported,ÁüÄ*' including those from `Mio` and others.Á”ö޳‹»ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Ó„ïñòÑ:óìôõñ:öì¯k…ä™õ=ï¨ ¨ Äu« êu¬ ÿo­ ‚v® pðÓuøì>]޳«¼¥%üüÈ€ Ù€é€,“
û޳ÈV4Ÿÿo4®-/ü¨
xüÕ+²‹Ëü…LüÒMÚü  \°Žüý *
޳Þ¥%þþÈ€
Ù€
é€

ý޳ÈV4Ì
%'üÎÂüË +²‹÷ Ëüû añ‹ÜÝ  used by `accept_hdr()`.Áù Ëüý KH This function does the same as `accept()` but accepts an extra callbackÁüÉ
HE for header processing. The callback receives headers of the incomingÁü’;8 requests and is able to add extra headers to the reply.Á´Õ޳ؽ‹»ê³í³î³Òï³ìð³ñ³ò³ìäs{©¶Ó„ïñòÑ:óìôõñ:öì¯k…ä™õ=¥%kÈ€ ìÃã ýÙ€é€äãD€
ÿ޳ؽÈV4êuDžÿo4¯IKNPüØü×+²‹ƒËü‡KË”üÓHŸ•üœ;ð•޳ؽΗ¥%ƒkƒÈ€ êÃã ûÙ€é€äã
޳ؽÈV4êuDœACFHtüS P Convenience wrapper for streams to switch between plain TCP and TLS at runtime.ÁT ËüXJ G There is no dependency on actual TLS implementations. Everything likeÁü£\ Y `native_tls` or `openssl` will work as long as there is a TLS stream supporting standardÁÔ€  `Read + Write` traits.Á4™è Í ï+ˆ à`ã`¶”  Í” žŒ¤ ßÈÖ Æ!Ž‰× üÖK °á ¡£}4„ o[]œ¨ MÜá =ŒŒ üë  Trait to switch TCP_NODELAY.Á< ©ÙüŒŠ ©Ù©ÙüÛ9 ü¤2 / Set the TCP_NODELAY option to the given value.Á\Þ 
 
±Ùê³í³î³Òï³ìð³ñ³ò³ìäs{©¶£ ê 
±Ù nodelayÁ<õ Ô˜ º×ü¹8  Š
 Š
º×ø¡ È 
 ó¡ üÊ8 »­  ° Ç 8 ¹ 7
native-tlsÁ ô« ¥%È€ Ï Ù€ é€ ޳ û×35ü‰ 8 
 
û×ø¡ ˜ 
޳$ ó¡ üí ( ü¬ . + A stream that might be protected with TLS.Á2ŒÛ ¥%˜˜È€
Ù€$ˆ
é€,
¿ØlӺϛVž©šœš޳¿Øžû׿ØXZ©„ôœ
 Unencrypted socket stream.Á©„
š޳©„©„޳¿ØЍ Å
޳û„»Ï
 Ò
é
8
Û
7£
ôÍ
üð
/ , Encrypted socket stream using `native-tls`.Áû„
޳û„û„û׿Øì©ô® û×üå9 ¥%  È€ ê Ù€ é€ à`޳ ¿Ø¡á`¡35ü¥8 ¨ Œ

Ž
 Œ
¿Ø 
Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•Ž
ÇøŸ ¬ Ÿ
¡޳ þ ³ üß0 ¥%££È€ ä Ù€ é€ ¿Ø¤¡¤#%ü–5 $™ 

 
¿Ø 
²Ðšž¢ ž ¢
¤޳ 쳩 ü‹1 ¥%¦¦È€  Ù€$“ é€ ¿Ø§¨à䧨.0üÃ2  

 
¿Ø 
²Ðšž¥ Ì ¥
§޳ ì³× üº#  
 
¿Øø¡¥ Ã ¥
¨޳ ü—"= ¥%ªªÈ€ œ" Ù€$Ÿ" é€,¦" õ¤<®" ¿Ø««+-üÛ"8 \Þ" 
 
¿Øø¡© ê" ©
«޳$ï" ó¡<õ" »£ ¦ ø8à§ ª ÷8÷« ® ß8 ·7¬£$ Å8 Ï7ö"$ à8 ê7â+ü¡Yÿ¾Äâäç¶”$%  ¬®¤,+ ߬¯Ÿ(”N I¬²(Db H¬³á(Œl O¬´ëlD‹ ¹¬µ¹-D¬ ²¬£‡ µ ¬·ÌWtá ¬¸Ío|õ ହŽ,† £¬º³:t כּý4 y¬¼öˆ  ¬½ˆ´ 47%(ü8ù !|„ ûÜ™ ì̺ ܴ٠ͺ¼¥§{}fh”À ü´[ X A connector that can be used when establishing connections, allowing to control whetherÁü` ] `native-tls` or `rustls` is used to create a TLS connection. Or TLS can be disabled with theÁ¤ñ  `Plain` variant.Á2Œ†  ú‹6­fÓ{7ªÀ¿ÀÁÂÀÂüŒú‹ ôÙ  Plain (non-TLS) connector.Á,¾¾ú‹@B¾¾ú‹M…ü‡  `native-tls` TLS connector.Á»­  ° Ç 8 ¹ 7¬£ ô« M…¾¾
ÂM…M…¼Œú‹¾¾øºôØ ¾¾¼Œ  ¬ÅÕ”« »Š   ¤ 8  7¬£ ôˆ  ÓÕ[Œñ ÅÇÊ‹d„ Åȶ”  Åʤ ßÅËènDá ÒÅÍÌWt€ ÅÏ÷‹$ è ÅÐ £ÅÑý yÅÒüÌE  κ¼´  ¬®šœüÅv   ƒoq^`IKüÆ â 
޳ 
ÝÖø°ú°û°Ðü°ý°þ°ìHˈXêE>¼Œê³í³î³Òï³ìð³ñ³ò³ìäs{©¶¿ØΠ¥%ÔÔ ˆ
È€ Ù Ù€$› é€
Ó޳ domainÁ4€
modeÁ$š

tls_connectorÁl²
UWl+ ,¥+ à¶”$Ã+  Õפ,É+ ßÕØëlDú+ ¹ÕÚÌWt™, ÕÜ÷‹$©, è ÕÝ,¼, £ÕÞý4Ã, yÕß´¹+ ŸüÞ+v |ó+ ƒ rt`bOQ:<üß,t \æ, ޳ÝÖ¡¿¥%ááÈ€ ò, Ù€$Æ- é€,Í-
à޳4õ, ο$€- /1̨/ Œ­/ ¬¥%ããÈ€ ¿/ ïñòÑ:óìôõñ:öì¯k…ä™õ=ïààÍoâìoãÿoäpÁ¤Õc¤ê¿Øüå0¸ üù/> ; Creates a WebSocket handshake from a request and a stream,Áü¸0, ) upgrading the stream to TLS if required.ÁTì0 ˆ\”žê³í³î³Òï³ìð³ñ³ò³ìäs{©¶  öˆÄ Å ÿb¼¾àZÚêW위XžìlӺϛVž©”žÚ³ïñòÑ:óìôõñ:öì¯k…ä™õ=ïààÍoâìoãÿoäpÁ¤Õc¤êÆÇˆ\å¥%ææå©â²Æ ÷0 Ÿ ú0 O²ÆŒö1  Ÿ$2 ß”ž,—2
䲯”žó¼<‚1 ÈV41 QSVXüÆ4 üÛ2O L The same as [`client_tls()`] but one can specify a websocket configuration,Áü«3O L and an optional connector. If no connector is specified, a default one willÁ|û3 be created.Á4 Ëü46 3 Please refer to [`client_tls()`] for more details.Á´Í4 ²Æ”ž‹»ø°ú°û°Ðü°ý°þ°ìHˈXêE>ú‹ºÆˆ\è¥%éèéÍÉ ä4 Ÿ ç4 æÉŒª6  Ÿ$Ä6 ýÉ,Ë6
ç²Æ”žó¼<ï4 ÈV4ÿ4 ÿo4Ž5  connectorÁL³5 []`bd„ü0- Helper traits to ease non-blocking handling.Áñø…‘<O êí«‰\e¥HêL‰ê³êï£êðü6_,F[LXKtw;œœ+üÐ!ì² Non-blocking IO handling.Á„Úññ—›ñ—›—›òòòü¹+üø<9 Convert WouldBlock to None and don't touch other errors.ÁŒ¼±Ùø°ú°û°Ðü°ý°þ°ìHˈXêE>±Ùññ
ò±Ùüè!£ôòôü*Œ“£ø°ú°û°Ðü°ý°þ°ìHˈXêE>£óó
ôü¶ΠöòöüÜ*ŒßΠø°ú°û°Ðü°ý°þ°ìHˈXêE>Πõõ
öÔö¾÷§¾÷ľ÷÷ö÷£ΠÜõä Non-blocking IO wrapper.Á­Ëü±C@ This trait is implemented for `Result<T, E: NonBlockingError>`.ÁŒÿøø©Ùüõ¾ø©Ù©Ù ùúùú©â±Ùùß×úü—85 Type of the converted result: `Result<Option<T>, E>`Á4Ùøøü"üå%" Perform the non-block conversion.ÁD±Ùç×øø
ú±Ù$›üµOüü*ýýüºç ºËç ½ñšÚ„óÈÙþÿùúÿ2479\ 4 ûûê³í³î³Òï³ìð³ñ³ò³ìäs{©¶ø°ú°û°Ðü°ý°þ°ìHˈXêE>ÌÖšÚü¶ !ÈÙÈÙùûû
ÿÌÖšÚü“#´™|¿šš²^œ³_×%ö·A›ÃÑÞ
ü†JA†A†S†S†e†e†|†|†üùÊކކŸ†Ÿ†¼±°†¼Ê†Ô†Ô†*æ†æ†ø†ø†

‡ü¨ 4.‡.‡@‡@‡R‡R‡ü‰.üÀ74 A FIFO buffer for reading packets from the network.ÁT”˜$±–¼Ÿýšö·A›ÃÑÞœľšš”ûäÜššBoxÁ샚íƒlÕ°Ù[¢'õ˜$˜µ(k˜$  ±–¸Ÿýš¢á`¢À?A
˜

 
ýš ˜
Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•
ÇøŸŸ
¢˜$,þðtî
ô·
 Possible WebSocket errors.Á
ΠíÙN…h ®¸¹º»¼½¿ÀÂÃÅÆÈÉËÌÍÎÏÐÒÓÕÖ¹»½¾£ΠÀÁ¹£ΠÃÄò£ΠÆÇÀ¤ΠÉÊ¡ÎΠÌÎ  ÐѶ¨Π

ÓÔÚ³Π  Ö׿©Π(,ß
Π¥Ð¥#%š
 š
Πø°ú°û°Ðü°ý°þ°ìHˈXêE> š
Ϥ
¤
¥ÃÅÇÉÍΠ¨æ`¨éë
œ

 
Π œ
Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:•
Çø§È§
¨ˆ __formatterÁš £¨Π«ü«ÅÈ£Πªª
«ó_Π­ü­%(¹£Π¬¬
­ó_`chΠ¯ü¯ˆò£Π®®
¯ó_ÀÃÈΠ±ü±åèÀ¤Π°°
±ó_ #(Π³ü³EH¶¨Π²²
³ó_ƒˆΠµüµ¥¨¿©Π´´
µó_à(<æ
Π·á`·#%ž
Ÿ
 
 ž
Π Ÿ
Á`Á`œÃ`è Á]Ä`ì³Á]Ê­\É:• 
Çø

·
þÍ„§
üƒH
E WebSocket connection closed normally. This informs you of the close.ÁüÐ9
6 It's not an error as such and nothing wrong happened.ÁŽ
Ëü–V
S This is returned as soon as the close handshake is finished (we have both sent andÁüñV
S received a close frame) on the server end and as soon as the server has closed theÁüÌ7
4 underlying connection if this endpoint is a client.Áˆ
ËüM
J Thus when you receive this, it is safe to drop the underlying connection.Áâ
ËüêV
S Receiving this error means that the WebSocket object is not usable anymore and the矁2
/ only meaningful action with it is dropping it.Á²*,þ
 ƒ
 
7Connection closed normallyÁä„
üü&
ë££Π££Π
ü½2
/ Trying to work with already closed connection.Áô
ËüüK
H Trying to read or write after receiving `ConnectionClosed` causes this.ÁÌ
ËüÔ V
S As opposed to `ConnectionClosed`, this indicates your code tries to operate on theÁü¯
V
S connection when it really shouldn't anymore, so this really indicates a programmerÁ¼Š
 error on your part.Á²*,¨
 ­
Õ
7%Trying to work with closed connectionÁü® '
ü¦ 1
ƒ×££Πìï££Π¬uüï R
O Input-output error. Apart from WouldBlock, these are generally errors with the矮 F
C underlying connection and you should probably consider them fatal.Á²*,“
 ˜
¨
7
IO error: {0}Á|™
Ì‘
¬u££
½¬u¬u£Π££Õú
ï$´

£££úu
TLS error.ÁÝ
Ëüå
^
[ Note that this error variant is enabled unconditionally even if no TLS feature is enabled,ÁüÈ.
+ to provide a feature-agnostic API surface.Á²*,ý
 

7TLS error: {0}Á„ƒ
Ôû
úu££
Àúuúu¹£Π££Æý
ï$ 

££¹£Hvüµ.
+ - When reading: buffer capacity exhausted.ÁüèO
L - When writing: your message is bigger than the configured max message sizeÁļ
 (64MB by default).Á²*,Û
 à
ü
7Space limit exceeded: {0}ÁÜá
üÙ%
Hv££
ÃHvHvò£Π££³€l”
ï

££ò£–v¼¨
 Protocol violation.Á²*,Æ
 Ë
ë
7WebSocket protocol error: {0}ÁüÌ
üÄ)
–v££
Æ–v–vÀ¤Π££•‚
ï

££À¤ävü—!
 Message write buffer is full.Á²*,¿
 Ä
Û
7Write buffer is fullÁ´Å
ü½
ˆäv££
Éäväv¡ÎΠ££øƒ
££¡Î$¿
¬€
 UTF coding error.Á²*,œ
 ¡
¸
7UTF-8 encoding errorÁ´¢
üš
`££Πtv££Πl’
äÉ
 Attack attempt detected.Á²*,ì
 ñ

7Attack attempt detectedÁÌò
üê#
Šj££Π~££Π2w„¥
Invalid URL.Á²*,¼
 Á
Ò
7URL error: {0}Á„Â
Ôº
2w££
Ð2w2w¶¨Π££ó‡
ï

££¶¨€w
HTTP error.Á²*,Š
 
­
7HTTP error: {}Á
$  
¢
7ì £
 ¤
8statusÁ
 «
¬
üˆ'
»
 ¹
Ï
8
Â
7â+
ì´
Œ€w££
Ó€w€wÚ³Π££µŠÌÛ
££Ú³Îw´û
 HTTP format error.Á²*,˜
 

7HTTP format error: {0}ÁÄž
ü–"
»¿