Files
boc/aamos-ledger-rust/target/debug/deps/libsqlx-e058794c100e2e2e.rmeta
T

275 lines
126 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Á sqlx_macrosÁ»!ºà´ÔéMj 3æZ -4d9ad617e4892e37Á sqlx_coreÁ-g2t`5ù@‚Í-Ô!ÍêH-20e7273a6275d097Á futures_coreÁJäI@fÄ
×ß›ë:²-b2a01c322c9ccc85Á futures_utilÁJ"×@˜`κÙÛo-65db755abe058d22Á futures_taskÁurªVŠˆ* ¨ªoèÿÅ7-8cf213f034b18043Á futures_sinkÁ­î•WÖÀR{†§(ì-ac8a6cbb31029a26Ápin_project_liteÁ`b#ÒÿùM.è}²ð@ñ-7ea160027a0fdab2ÁslabÁ­GqåI©2梸7•,7ú-65d8f4f9212282e4Á
futures_ioÁG™êéå&í“Êþ(ã½-10d9063ddf3dea8bÁìÐâà`éÙBÞðg+-67d59ffd555808adÁevent_listenerÁhWMûß™MEû†´Û-890d73c4083e87cdÁparkingÁ5׫M Ư³yŸø-800d65fb6d967e86ÁeitherÁG{²štwÍÊ^Ö
8%¥È-8d48f10ca5383686ÁserdeÁŸÿ\.©åý¼ Òš-050607dac4fda6a6Á serde_deriveÁ,w|êñ]ù¿¥­C£ð-975c43f96d83014eÁ
serde_coreÁ_³-À Ëï ¢ÖzéÌ»S-cb84d8e698130faaÁcrossbeam_queueÁµ…·†°ÊAi+{Çð»¼-bf750b88358ec6d3Ácrossbeam_utilsÁ>4¬ýc¾t×¢Ž-7å)-6f99695f854306e2ÁtracingÁúV,íE; å^^u—ùŒW-0bcf6e4f5378b93bÁ tracing_coreÁ7"àO|²Z…_èR˜ u-3a9a51b50ce6983dÁ once_cellÁ4¤83æl0è{—tE-67622b8a8d4197b3Átracing_attributesÁÿS:FN¢×D2pª`;¨-40899a47d4b3db36ÁlogÁ1Œ˜Gf½ô—!*F“†;-ae6d01c1b311a5f7ÁurlÁ€6dÉÚ·3P¨¬
áðã“-fb882341d1f0d1b0Áform_urlencodedÁºGîZ×Ú5,‡*—2j*­6-c5a42ac7e911502bÁpercent_encodingÁ
1šŒcL¸Ynº(©±Û-bcbb53d89b814310ÁidnaÁâøIÞkø¯7®²›«¹è-b42bad9ff6d4222fÁ idna_adapterÁrEÙŸÆå‘@aÎQ/-5b3759b9c84d118fÁicu_normalizerÁP—¨u.ÆyókõÔV\þO-829da3484eff866fÁ icu_providerÁ«Ij-²KÃÓûÙ^-d781c4307358ffc0ÁzerotrieÁóôö¬µŠKì|t§×(c-2e59e106bf8bcf22Á
displaydocÁ©$-.ÿæ§ï=[œiF-53df79815c011341ÁzerofromÁ“zÂÚ¤‰ÔžˆÁÕÁpâ-ebe6d0d4f33b764dÁzerofrom_deriveÁŸæþÇŽá2?M¥e (-abe85a41d9dcc735ÁyokeÁ0²Àë[éQ¿ d|Ù‘õ-e00e8f69447c8036Ástable_deref_traitÁê7#JÙ iÕ‰~òÏ-e121373445e25e3fÁ yoke_deriveÁ×ã„Ô„ýT·+CIƒ•sÙ-ad663b8de2c8c776ÁzerovecÁþzôs3û]0oøºÑê±-05e7744103b7d51dÁzerovec_deriveÁ£½+d“ð΃-m*¸]-09ac241eaa4a8700Á writeableÁFLÛ
9>2!fiQxMíHn-0dc003cbca78f018Áicu_locale_coreÁ< &üþsímÿõf§§-cbe933ed93688d5eÁlitemapÁTøUs•a÷á¶…ø¤½-0ffcf6145090791aÁtinystrÁ1
ðìñ3Ðï4;µQ-98301aa19023b8fcÁicu_collectionsÁm˜ÎÑh¦13ÍO4ûç~2-fb1fab0c98bb3350Á
potential_utfÁä/•!zëõƒ‡ƒê^õøÔ-ea64bb8c803395e9Á utf8_iterÁ2ÞàN>Y‚ž*GF2W~üŠ-65437b4baeaecf78Áicu_normalizer_dataÁS¯¸[±¨À”2tw2)-edeec04f49f7a488ÁsmallvecÁbvmÄš FßpÀêà-e8a45189f8346c54Áicu_propertiesÁôºG$Ä¥ÐÅXnj7-cddb92d57ead7acaÁicu_properties_dataÁØ”Ä^$ÎÉŽæI-853f209e437288bdÁ
serde_jsonÁÆÑ.ä­pZàTØ}KPI-f5688111e76a40c7ÁzmijÁ¬ ǸÊh<on¿‚]š1ƒ-e65200c02ad231e6ÁitoaÁ®æ
9H}>xû, @º‡I-c4c95ef3ef39a8c3ÁuuidÁva@u 4u`¯M ,TK-dba20475dc1fc7fcÁchronoÁý·Ú{*LׂÓ#þëmS¥Ö-1ab4fb33ae2feefbÁ
num_traitsÁÙ‘Î:³u-ްø­û-17eaebb3de927d05Áiana_time_zoneÁ §¼
Œ8r }/zèjŽôì-4eaba4969283ffdfÁhashlinkÁZ8Q¥èõÄ_·èfp7…\e-a7e4f739feb47dc1ÁÐ)é\2b;êX±S\Ž -aab585db90c732eaÁallocator_api2Á –ýݤ5úe¸ ÊxväÏ-ec9b304a0bfdb8dfÁ
equivalentÁ¡ Zª÷PQØÊ¸+2×I-7507eaa528d55517ÁfoldhashÁn´áÇ亜=Av‡-pàÕo-032a5228e2caa585ÁbytesÁ^ÍÏ8+än÷+j-122b7cf70504f583ÁtokioÁ3rLE/fe ßÄê?¿-b0f60e7d6e526848Á parking_lotÁzÏR3´by¤®Í{˜‘)-0869a71516c09d69Álock_apiÁð¹f^ô}¬öFº™”z¨ò-3f3c7099ed5d8d40Á
scopeguardÁ\…ŒÞ=0ÔB­ïÅA&¹-ccb5054c1d5044beÁparking_lot_coreÁjJäðòº';_ ày–Ê-90a8ae327c6b140eÁ®«ýºõó¿àlé ,Z¶÷k/-c82bfbac630248a2ÁÚ+z˜ÖËó>zj–„÷-8f89ea8b6e77f2aaÁmioÁÄ©aZ¦ê@Þ'íˆA-d6954a24ebe3831fÁ tokio_macrosÁóÁm¹^E¼>ŽCê
z3-074a4ab5bbda1a72Ásocket2Á/Æm·}ï3rÑ®‚fqB-f5f25707507e8a7cÁsignal_hook_registryÁ‹A´Ùqà’D;i-a201455211635890ÁerrnoÁ—ë@\ZéíJ÷MˆI-14c535580c974ea2ÁrustlsÁ¦tÖÖrÿÖÊGIã‹e-ff2b95d73ff364f2Árustls_pki_typesÁ÷/ŠNàEÀ~f‘´,=N-49c3c284b93f29dcÁzeroizeÁ…îÁ#pOŠùä­»WÈj-ab1fd11939c9c032ÁringÁÂ?ìßír£Â7Vxež]j-ae451fa83295da46Á untrustedÁDçWì\ðžµV
&Bú/-a5c60ec3711e6e4fÁ getrandomÁRÚE®RÄÿ$·Îù-1a378949ea4a11a7ÁwebpkiÁÈwTâŒËßë·r%šÀ¬<-89f4393d02e85429ÁsubtleÁŒ2b9ƒñÞéW©Ìà X/-d16c11b7355c0817Á¹
m™ºðT)*Ñ™ÿLI [M[-d8a8a6d92cebf6caÁdigestÁ†§o`Qžðrøš”Y³KË-156b4cbafca24b37Á
crypto_commonÁ-)þ¡ ¤ðô¿¶r_„-b8ab09f8a062f365Á
generic_arrayÁ€Ìºˆ¾[ȨûÜå[ {ë-00b5cb6878626fbeÁtypenumÁ*¸ÐÀùÍk»½e6;-17ae62b50937f0b6Á block_bufferÁ“0ÿçpÅé¦x4-77bdbc66f1284a1aÁbase64Á¶RJ…%%ê»%B¡9ª
¶#-8046220e9e6d8608ÁindexmapÁ¢°ÿÉc(ã–'øùZÉÝ£-bf96270c5ea4036cÁÐñÒ¬ÕÑ=nsùV42íi'“-2ffaac140a2b5d48Á thiserrorÁ¼Rû¯MI—As.¶ÒÙ¦-d7019a58c4be6017Áthiserror_implÁ
²,v€ϸ6»˜-248901177889560cÁ webpki_rootsÁïbî>9"¸¤œyê0×Y-e7e88eed0be4870bÁÄ,ñ0!$ÅÀlëoX¯Ñ-4b81c59bac4436e9Á
sqlx_postgresÁN·üéôß.¸Ú|k¤-639520b5a3c60706ÁhkdfÁfNžww3/ «*lgf-e9a33a1bc0a8a9d8ÁhmacÁÍBÇŒº^—»èeÑÉWIOD-919974fb59bcd563ÁrandÁ«µ|”A [OìÛ®;-3bbd585ba3da2bf1Á rand_coreÁdêä¡lìL·p^˜Œ0Út´-039f6d921c0ed250Á rand_chachaÁþàr–ÓIž7´}h¥ã-6532194ffe05c06fÁ
ppv_lite86Á©;Îî‹jQ(*»ìY2DÎ-3f12509c58b93de6ÁzerocopyÁ©pµA4ÿäK6·kñ-686953f627c37fa6Á
stringprepÁþG?¿}ãvê³rŠ7¯ñ-f5486cc618e19519Á unicode_bidiÁ³£F´uÏ9ºsÒ`n-Õ-df9bbcd7c4e4bac6Áunicode_normalizationÁ:]á#—kŒ'^U'Q-def36fc1e20b201eÁtinyvecÁòÚÅgÉl m©Æys-eecc365b0306dff7Átinyvec_macrosÁ
ÿ˜x üäé÷
Ìø‰­K-608121422b928643Áunicode_propertiesÁÁ{œµžÙÁXYvü0ÜÌ4-a511cfd776fc7110Áfutures_channelÁ M-Ó%µ½ºÆX¿êÂ-eedbd47f9a1960f0ÁatoiÁ •ÍHx¦20ƒpðô{-734cb3b4e6503587Á byteorderÁª¡M‡(§EÃŒ c=ùE”Z-44068f628772cd9fÁmd5Á½Këãz|KÞ¶þ::-571ef650b7bfc28fÁbitflagsÁÊ•09³b@{e|ШŸi-e5412d4fc4957378ÁhomeÁ7)J$‡“H¬Úå(*9é-dfb6fb4d0804494bÁwhoamiÁ”;g3K·ÀÖÏaIæN#9÷-b528be9c760fdf40ÁhexÁÔ;»LâT¨DÅòÚáÕ]-4653b467cd4ca887ÁcrcÁ×´bî~È2Mí³¡jæu`-aa45429d9c1c1df2Á crc_catalogÁ£7rsî$ÇöÅS" €#nû-c94697fef4bf6442ÁdotenvyÁ_,ÞÀ^øO)tjˆÎUÖ-a8a9810542ad9b8eÁmysqlÁ,Ä
»þ6ŒÎ MySqlÁ,Ë
»þ6MySqlConnectionÁ|Ò
»þ6>@
MySqlExecutorÁlã
»þ6_a MySqlPoolÁLò
»þ6|~MySqlTransactionÁ„ý
»þ6 ¢sqliteÁ4â»_sqliteÁœçSqliteÁ4ê»É8SqliteConnectionÁ„ò»É8@BSqliteExecutorÁt„»É8bd
SqlitePoolÁT”»É8SqliteTransactionÁŒ »É8¥§À 
  
 !"#$%&'()*+,-./0123456789:;<=>?@ÄABCDEFºJJJJJJJJJJ J
J J J
JJJJ reexportsÁ\\Jinstall_default_driversÁ_ONCEÁ_ macrosÁbqueryÁbquery_uncheckedÁb
query_fileÁbquery_file_uncheckedÁbquery_asÁb
query_file_asÁbquery_as_uncheckedÁbquery_file_as_uncheckedÁb query_scalarÁbquery_file_scalarÁbquery_scalar_uncheckedÁbquery_file_scalar_uncheckedÁbmigrateÁty_matchÁpp same_typeÁr¥pWrapSameÁt
t¥t¦tˆtpz¥z¦zæ p WrapSameExtÁ~WrappedÁ~ wrap_sameÁp¥¦í@p¥¦í@p MatchBorrowÁ
¥¦ˆp¥¦æ pMatchBorrowExtÁMatchedÁ match_borrowÁp'aÁ¬BpÓB¬BpœÓBœ¬BpŸÓBŸ¬Bp¢ÓB¢¬Bp ¥ÓB¥¬Bp
¨¥¨¬Bp «¥«¬Bp ®¥®¬Bp
±¥±¬Bp´¥´¬Bp·¥·¬Bpº¥º¬Bp½¥½¬BpÀ¥À¦À¬Bp
conjure_valueÁÄ¥p
dupe_valueÁÆ¥
spec_errorÁÈÈÈÈÈÈSpecErrorWrapperÁÎ
ÎÎˆÈ SpecErrorÁÒÒ__sqlx_spec_errorÁÈÕÕªF× ÈÙÙªFÛ ÈÝݪFß ÈááªFã ÈååªFç È __spec_errorÁGtypesÁëëencodeÁîîîîHdecodeÁôôIÉ=øøøøø¥ þþþþþþþþþþ þ
r
r
}


¨
«
«
®
±
±
´
·
·
º
½
½
À
Æ
Ô
Õ
Õ
Õ
Õ
×
Ù
Ù
Ù
Û
Ý
Ý
ß
á
ã
ç
~“Ò~ttu“@xˆpyp ”\ÁÅÆÑ&Ë¥Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¦~ 8ttu“@xˆpyp ”\ÁÅÆÑ&Ë¥¦ŠÃAˆpŽp ¦e@ÊzMNÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÓBÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙúHúHßûHÁ‘4Ý­f‰úM÷ŠÃAˆpŽp ¦e@ÊzMNÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÓB
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙªBªBö­BbufÁ÷<®B÷<9)
-ÜnL«PçEçEèEGlobalÁ ¿±‡§í#ŠÃAˆpŽp ¦e@ÊzMNÛMÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÓBîNŠÃAˆpŽp ¦e@ÊzMNßOÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÓBôPŠÃAˆpŽp ¦e@ÊzMN NîNŠÃAˆpŽp ¦e@ÊzMN¤PôPŠÃAˆpŽp ¦e@ÊzMN 8MMŠÃAˆpŽp ¦e@ÊzMN 8 8¥¸VŠÃAˆpŽp ¦e@ÊzMN‹MßUŠÃAˆpŽp ¦e@ÊzMN¸V®VŠÃAˆpŽp ¦e@ÊzMNÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙßUÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‹MŠÃAˆpŽp ¦e@ÊzMNÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ®VÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¸VŠÃAˆpŽp ¦e@ÊzMNàX˜XŠÃAˆpŽp ¦e@ÊzMN³ZëY 8ŠÃAˆpŽp ¦e@ÊzMNMMÒ 8 8 8 8ÎÎÏäEш wr ·ŽŽw¦]Ò 8 8 8ÎÎÏäEш wr ·ŽŽwø]Ò 8 8ÎÎÏäEш wr ·ŽŽwÄ^Ò 8ÎÎÏäEш wr ·ŽŽwŠ_ÒÎÎÏäEш wr ·ŽŽwÊ_t…
œŸ¢¥¨«®±´·º½À
Õ
Ù
Ý
á
åÎ~ ÒgrüÚ&ý øKî˜aö_1Á_2ÁJ­
}üÞ Ottu“@xˆpyp ”\ÁÅÆÑ&ËøKÃL ÃL_argÁnùž"#ù#ž"#
¶cÔœ  
4ù@#á#
ÜWV$ ¼ üç
V
ÿc
qäÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdgž‚cºcéÿcÄüñ
* ŠÃAˆpŽp ¦e@ÊzMNøKÃL¡üÁ
`øK´e
øK Ì
¼bÒ
¿_uÁIùž"#ù%ž"#cÔ–”c -ù@#á#ºcL! üÞYÿcÿcmœd§N‚cúcÿcsùý*#Áý#
àW#”c
.Äüç/øK PÏh`ùý*#Áý#Ïh#”c
+Æü˜2øK ¸˜a­Vý3ÏhsŒ¨Ø¦]÷\žBoxÁ¡ˆˆ¢ˆl }.xϾ Ìì´Qa÷\Öj¿×ü®´küÜA     ÷\ =»jðµ¦]
ª¦].#'Öj¹ØWÖj« »jo÷\ ©žäi¡ˆˆ¢ˆl }.xϦ]´Q³¦]Ͱ[ÜÄlؤmÖjßÔ‰}Üø]ÌjÉ]ÖjaÉ]Öj©ÛüšÔnü½A    É],­ :³nø]|L
˜6ø].\´$
èîNÖjH4 ¢£8ÜGÖjŒ ³n_É] ŠîN¼ ø]Ú°ŽáoäŒp¾É]É]šüð0àÄ^Ìj•^Öja•^ÖjßüöŸ…rü¤A   •^,” 7æq '„Ä^ù'„#( %  Ä^
ÈbÄ^ U %O ‚È‚ÈArgumentÁ„È´ÀbökÏ®ÝWj´ 
Ÿ «P¾ ÌÑ
«c°t°t
þ 
ùð"=ð"
É,ù„#(*ùÇ"qÑÇ"
 îNùâ"U-Üô$‰ŒpG4‰ ŽvàÜã
Öjó æq«•^ ñîNÉîN±œdëžs$žs?×s°tB×s$ªtR ±w]žse°lÀ}ÀA´sv×t¢§u×ujŒp=•^•^$üÙ H« äŠ_ÌjÛ^ÖjaÛ^Öj§
ãüßÈþxü A  Û^ 4áxŒ
Ôÿ Äÿ 
«&Š_Ð)ÿ ù)„#( !
 ”c
Æb”c
Q
%O ×s
^ f «P°t  ˜
«c°t°t Å ÊÓùð"=ð"§uù „#('ùÇ"qÑÇ"×uùâ"U'üÞ C$
ŒpB4
  
¡
 Oä^ ÖjÝ  áxÛ^Ú îNÄîN²œdæµzáµzø”c#±wù×sÛˆ{ ×wµz_eÁeÀ3À? ôyËz2µ{^§u×udŒp=Û^Û^#üØ 3þ èÊ_Ìj›_Öja_Öj çüÞ
³ÏüŒ A ›_
 1´üÝ ' %”cüÝ .$… 
è”cÖj54…  Š  èÖjÜ  ´*›_Ù ”c©¹}O×€±›_›_ŒÌ‚  tøKÃL u,ùa7 PhantomDataÁFu\»ŸøKo×Fu\»ŸÃL¤äß  øKÃL!Š.´e9É‚AƒIPô‹ ÎÊ_Ï(_3Ê_:AøJbpÈëîôþÀG<ǨcLï¡
IntoArgumentsÁlúªColumnÁ4¥ª  ColumnIndexÁ\ȯ ConnectOptionsÁtõÜ
ConnectionÁT…½ databaseÁ$°

DatabaseÁD¶
DescribeÁDÞÊ ExecuteÁ<†ö
ExecutorÁDÉ
FromRowÁ<· ³†
EpoolÁ$Ú¸PoolÁ$àí__query_with_resultÁœ¥ É=,Õ  É=c
query_withÁTÜ ƒ —>D‡ Ø—>g
query_as_withÁl Ý
query_builderÁ$Äô QueryBuilderÁdʃ __query_scalar_with_resultÁÔ¥ ©!ñ>dã ž#ñ>kquery_scalar_withÁŒñ £$raw_sqlÁ<¢ Ç&RawSqlÁ4« Ã'RowÁÌ ø( StatementÁLï  ) TransactionÁ\
ù+TransactionManagerÁ”¨
ñ,TypeInfoÁDÛ
-ó$ÿ
Ç.ó FValueÁ,  0ValueRefÁD§ ¬1EitherÁ4Å 2errorÁ$ø ]4ErrorÁ,þ ³5Í4… f6Û?<¾ ²7Û?opostgresÁD˜t9 PgConnectionÁd¢:
PgExecutorÁT°tˆ;PgPoolÁ4¼t†<
PgTransactionÁlÄt=PostgresÁDÓt>½>AnyÁ¡Î%ANèÏ%AN AnyExecutorÁ\¦ÛBQÄ\‰C
GtestingÁ<ŽäH
test_block_onÁl¾ ÍIÕ=|‘„dë=T¼’eü=¤Þ–f¦>lðÚhº>”ßßiÓ>¼øäj„?Œólœ?´‡ùm¹?ܦÿnÅGdÁ é__rtÁ$ÑêEncodeÁ4صóðÀóòDecodeÁ4Å!É÷õñ÷öAnyPoolÁ<†Ù@]
AnyConnectionÁl°Ê%@«&øþü' þThe async SQL toolkit for Rust, built with â¤ï¸ by [the LaunchBadge team].
See our [README] to get started or [browse our example projects].
Have a question? [Check our FAQ] or [open a discussion].
### Runtime Support
SQLx supports both the [Tokio] and [async-std] runtimes.
You choose which runtime SQLx uses by default by enabling one of the following features:
* `runtime-async-std`
* `runtime-tokio`
The `runtime-actix` feature also exists but is an alias of `runtime-tokio`.
If more than one runtime feature is enabled, the Tokio runtime is used if a Tokio context exists on the current
thread, i.e. [`tokio::runtime::Handle::try_current()`] returns `Ok`; `async-std` is used otherwise.
Note that while SQLx no longer produces a compile error if zero or multiple runtime features are enabled,
which is useful for libraries building on top of it,
**the use of nearly any async function in the API will panic without at least one runtime feature enabled**.
The chief exception is the SQLite driver, which is runtime-agnostic, including its integration with the query macros.
However, [`SqlitePool`][crate::sqlite::SqlitePool] _does_ require runtime support for timeouts and spawning
internal management tasks.
### TLS Support
For securely communicating with SQL servers over an untrusted network connection such as the internet,
you can enable Transport Layer Security (TLS) by enabling one of the following features:
* `tls-native-tls`: Enables the [`native-tls`] backend which uses the OS-native TLS capabilities:
* SecureTransport on macOS.
* SChannel on Windows.
* OpenSSL on all other platforms.
* `tls-rustls`: Enables the [rustls] backend, a cross-platform TLS library.
* Only supports TLS revisions 1.2 and 1.3.
* If you get `HandshakeFailure` errors when using this feature, it likely means your database server does not support
these newer revisions. This might be resolved by enabling or switching to the `tls-native-tls` feature.
* rustls supports several providers of cryptographic primitives. The default
(enabled when you use the `tls-rustls` feature or `tls-rustls-ring`) is the
`ring` provider, which has fewer build-time dependencies but also has fewer
features. Alternatively, you can use `tls-rustls-aws-lc-rs` to use the
`aws-lc-rs` provider, which enables additional cipher suite support at the cost
of more onerous build requirements (depending on platform support).
If more than one TLS feature is enabled, the `tls-native-tls` feature takes precedent so that it is only necessary to enable
it to see if it resolves the `HandshakeFailure` error without disabling `tls-rustls`.
Consult the user manual for your database to find the TLS versions it supports.
If your connection configuration requires a TLS upgrade but TLS support was not enabled, the connection attempt
will return an error.
The legacy runtime+TLS combination feature flags are still supported, but for forward-compatibility, use of the separate
runtime and TLS feature flags is recommended.
[the LaunchBadge team]: https://www.launchbadge.com
[README]: https://www.github.com/launchbadge/sqlx/tree/main/README.md
[browse our example projects]: https://www.github.com/launchbadge/sqlx/tree/main/examples
[Check our FAQ]: https://www.github.com/launchbadge/sqlx/tree/main/FAQ.md
[open a discussion]: https://github.com/launchbadge/sqlx/discussions/new?category=q-a
[Tokio]: https://www.tokio.rs
[async-std]: https://www.async.rs
[`tokio::runtime::Handle::try_current()`]: https://docs.rs/tokio/latest/tokio/runtime/struct.Handle.html#method.try_current
[`native-tls`]: https://docs.rs/native-tls/latest/native_tls/
[rustls]: https://docs.rs/rustls/latest/rustls/
ÁøJbpÈëîôþÀŒG¨cŒ¡¬„ªÊ„yª á„n¯ ý„`Ü
œ…V½ ·…N

Ð…F
é…>Ê ‚†7ö
š†/É
³†( ³†9
EÛ†%¸ð†!í…‡ É=
  É=cLJ ƒ —> Ø—>g€ˆ÷ Ýžˆêô¼ˆÞƒ ÙˆÄ ©!ñ>à ž#ñ>Ók¢‰³ £$ĉ¬ Ç&܉¦Ã'󉣸(‡Šš )¡Šù+½Š}ñ,àŠu-ótÇ.ó F™‹p0¯‹h¬1È‹b2ß‹]]4ô‹X³5ÍWf6Û?V²7Û?fo¸ŒOt9ÐŒC:íŒ9tˆ;ˆ3t†<Ÿ&t=½t>½/>èÎ%ANè0Ï%AN”ŽÛBQÄC
GÔŽ äHìŽü ÍIÕ=ûdë=ùeü=÷f¦>õhº>óiÓ>ñj„?ïlœ?ím¹?ënÅGééªåêÀßµóðÀõóòñÚÉ÷õñð÷ö¢‘ÔÙ@]½‘ÇÊ%@^¦©¬ܳ¤¤ØšÌ’uôµ`¬ÝHK36œš$ìÉœðòõßâä¢Ñ³¥¨üþ#Œ„Â`cœñY\47Ä© l´

üð1ê¼Éàã·º ©¬˜œ¼ ŽüÙ |´‚
gjJMôÅ
;´í
1 Œº ó„å ä ÖÙËΔ³ Å$ª|knSV@CT†L“(+úýäøðŒ¼÷”ƒæä¯ÏüFC **SEE DOCUMENTATION BEFORE USE**. Runtime-generic database driver.Áø
©üG1©
The underlying database drivers are chosen at runtime from the list set via
[`install_drivers`][crate::any::install_drivers]. Any use of [`AnyConnection`] or [`AnyPool`]
without this will panic.
It is recommended to use [`install_default_drivers`][crate::any::install_default_drivers] to activate all currently compiled-in drivers.
[`AnyConnection`]: sqlx_core::any::AnyConnection
[`AnyPool`]: sqlx_core::any::AnyPool
Á»º¼Îî\_OnceÁ$‰ï8JKinstall_driversÁ|° LèàÎ%NèÏ%N AnyArgumentsÁdåËOAnyConnectOptionsÁŒóÞ%P”Ž\†ÛQAnyPoolOptionsÁt“ÚRAnyQueryResultÁt£å%SAnyRowÁ4³ì%T AnyStatementÁd¿ñUAnyTransactionManagerÁ¬ÍV–ÃV AnyTypeInfoÁ\ä†&WAnyTypeInfoKindÁ|ñ&XAnyValueÁDÐ&Y AnyValueRefÁ\ŒÖ&ZAnyKindÁ<ÊÒ%[|~Ûü˜'Á¹qtehLO36"% ëíÁÃ¥§xz¼ºhÄÔ¢‘Ù]½‘Ê%^¼ö9ì ü¤ üÂKH Install all currently compiled-in drivers for [`AnyConnection`] to use.ÁŽúü’\Y May be called multiple times; only the first call will install drivers, subsequent callsÁÄï will have no effect.Áˆú ### PanicsÁü›OL If [`install_drivers`] has already been called *not* through this function.Áëúüï41 [`AnyConnection`]: sqlx_core::any::AnyConnectionÁ¼« a
_ŒË Jï8ï8øÀð8innerÁé8ãTPàVçaB
_<closure_kind>Áa<closure_signature>Áa<upvars>Áaa_aaaaT»¼=”úÔô4“””zü@= Statically checked SQL query with `println!()` style syntax.ÁAúüEeb This expands to an instance of [`query::Map`][crate::query::Map] that outputs an ad-hoc anonymousÁü«jg struct type, if the query has at least one output column that is not `Void`, or `()` (unit) otherwise:Áú”š ```rust,ignoreÁÄ­ # use sqlx::Connect;ÁüÆ?< # #[cfg(all(feature = "mysql", feature = "_rt-async-std"))]ÁĆ # #[async_std::main]ÁüŸ*' # async fn main() -> sqlx::Result<()>{ÁüÊSP # let db_url = dotenvy::var("DATABASE_URL").expect("DATABASE_URL must be set");Áü¤ZW # if !(db_url.starts_with("mysql") || db_url.starts_with("mariadb")) { return Ok(()) }ÁüÿC@ # let mut conn = sqlx::MySqlConnection::connect(db_url).await?;ÁüÃ,) // let mut conn = <impl sqlx::Executor>;ÁüðLI let account = sqlx::query!("select (1) as id, 'Herp Derpinson' as name")Áì½ .fetch_one(&mut conn)Á„Û
.await?;Áìúüð>; // anonymous struct has `#[derive(Debug)]` for convenienceÁä¯ println!("{account:?}");ÁüÌ1. println!("{}: {}", account.id, account.name);Áþúd # Ok(())Á< # }Á,—ÖÐüIF # #[cfg(any(not(feature = "mysql"), not(feature = "_rt-async-std")))]Á”ç # fn main() {}Á ```Á úü† HE The output columns will be mapped to their corresponding Rust types.ÁüÏ 85 See the documentation for your database for details:Áˆ
úüŒ
(% * Postgres: [crate::postgres::types]Áüµ
" * MySQL: [crate::mysql::types]矯
SP * Note: due to wire protocol limitations, the query macros do not know whenÁü¬ WT a column should be decoded as `bool`. It will be inferred to be `i8` instead.Áü„ )& See the link above for details.Áü® $! * SQLite: [crate::sqlite::types]ÁÓ úü× \Y **The method you want to call on the result depends on how many rows you're expecting.**Á´
úü¸
ro | Number of Rows | Method to Call* | Returns | Notes |Áü«ro |----------------| ----------------------------|-----------------------------------------------------|-------|Áüž¢Ÿ | None† | `.execute(...).await` | `sqlx::Result<DB::QueryResult>` | For `INSERT`/`UPDATE`/`DELETE` without `RETURNING`. |ÁüÁ | Zero or One | `.fetch_optional(...).await`| `sqlx::Result<Option<{adhoc struct}>>` | Extra rows are ignored. |ÁüÆÂ¿ | Exactly One | `.fetch_one(...).await` | `sqlx::Result<{adhoc struct}>` | Errors if no rows were returned. Extra rows are ignored. Aggregate queries, use this. |Áü‰š | At Least One | `.fetch(...)` | `impl Stream<Item = sqlx::Result<{adhoc struct}>>` | Call `.try_next().await` to get each row result. |Áü§]Z | Multiple | `.fetch_all(...)` | `sqlx::Result<Vec<{adhoc struct}>>` | |Áúü‰[X \* All methods accept one of `&mut {connection type}`, `&mut Transaction` or `&Pool`. Áüåvs † Only callable if the query returns no columns; otherwise it's assumed the query *may* return at least one row.ÁœÜ ## RequirementsÁüð^[ * The `DATABASE_URL` environment variable must be set at build-time to point to a databaseÁüÏKH server with the schema that the query string will be checked against.Áü›b_ All variants of `query!()` use [dotenv]<sup>1</sup> so this can be in a `.env` file instead.Áþúü‚vs * Or, `.sqlx` must exist at the workspace root. See [Offline Mode](#offline-mode-requires-the-offline-feature)Á„ù
below.ÁŠúüŽ_\ * The query must be a string literal, or concatenation of string literals using `+` (usefulÁüîda for queries generated by macro), or else it cannot be introspected (and thus cannot be dynamicÁüÓ&# or the result of another macro).Áúúüþ_\ * The `QueryAs` instance will be bound to the same database type as `query!()` was compiledÁüÞ_\ against (e.g. you cannot build against a Postgres database and then run the query againstÁľ a MySQL database).Á×úüÛ[X * The schema of the database URL (e.g. `postgres://` or `mysql://`) will be used toÁü·&# determine the database type.ÁÞúüâ~ <sup>1</sup> The `dotenv` crate itself appears abandoned as of [December 2021](https://github.com/dotenv-rs/dotenv/issues/74)ÁüäKH so we now use the [dotenvy] crate instead. The file format is the same.Á° úü´ -* [dotenv]: https://crates.io/crates/dotenvÁüâ /, [dotenvy]: https://crates.io/crates/dotenvyÁ´’! ## Query ArgumentsÁü©!^[ Like `println!()` and the other formatting macros, you can add bind parameters to your SQLÁüˆ"MJ and this macro will typecheck passed arguments and error on missing ones:ÁÖ"ú”Ú"ŸÎÄí"ºÎü†#?ÜÎÄÆ#¤Ïüß#*ÆÏüŠ$SúÏ,Þ$ÖÐüä$ZåÐü¿%JG # let mut conn = sqlx::mysql::MySqlConnection::connect(db_url).await?;ÁüŠ&,–Òü·& let account = sqlx::query!(Áü×&63 // just pretend "accounts" is a real tableÁüŽ'_\ "select * from (select (1) as id, 'Herp Derpinson' as name) accounts where id = ?",Á„î'
1i32ÁLÿ'ì‰(¡Ó„§(ÇÓ¸(úä¼(´ÔüÙ(1ÚÔd) Õ<˜)µÕ, )ÖÐü¦)IÓÕ”ð)¥Ö<ƒ*ÀÖ*úü*KH B
$Ï’& Ó’8«<Ô’*Ý’ à’ ¨“ á’ §“, ë’8,ì’'ñ’8Ä\ó’'þ’8ÎÓd€“ Œ“  ¡“8 source_fileÁ\Ž“ š“, œ“8õ
$% ©“ ¯“ Ë“, °“8õ
$±“& µ“8«<¶“$ ½“, ¿“ À“ É“, Á“8À$“& Æ“8¯Ç“
Ê“*Í“ Г ¬” Ñ“ «”, Û“8,Ü“'á“8Ä\ã“'î“8ÎÓdð“ ü“ ý“ ¥”8Èê\þ“ Š”, Œ”8õ
$$ ‘”8À$“” ˜” š” ¤”, ›” œ” ¢”, 8À$ž”
£”üÑ–!ü²”_\ A variant of [`query_file!`][`crate::query_file!`] which does not check the input or outputÁü’•^[ types. This still does parse the query to ensure it's syntactically and semantically validÁìñ• for the current database.Á(|¬G ó– ü˜ ù– ‡—, ú–8õ
$û–& ÿ–8«<€—*‰— Œ— å—  ä—, ——8,˜—'8Ä\Ÿ—'ª—8ÎÓd¬— ¸— ¹— Þ—8Èê\º— Æ—, È—8õ
$É—$ Í—8“Û<Ï— ×—8 ,Ù—% æ— ì— ˆ˜, í—8õ
$î—& ò—8«<ó—$ ú—, ü— ý— †˜, þ—8À$ÿ—& ƒ˜8¯„˜