25 Commits

Author SHA1 Message Date
nitn3lav
9ba488c831
Generic Associated Types in Database, replacing HasValueRef, HasArguments, HasStatement (#2973)
* HasValueRef, HasArguments, HasStatement -> Database GATs

replace the associated types from the generic traits
`HasValueRef<'r>`, `HasArguments<'q>` and `HasStatement<'q>`
with generic associated types in `Database`

* fixup after rebase

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2024-03-14 12:35:52 -07:00
Austin Bonander
b5312c3b6f Break drivers out into separate crates, clean up some technical debt (#2039)
* WIP rt refactors

* refactor: break drivers out into separate crates

also cleans up significant technical debt
2023-02-21 13:25:25 -08:00
Chloe Ross
2890d154a3 doc: use the fancy new intra-crate doc links everywhere 2021-01-04 18:39:03 -08:00
Ryan Leckey
0b34545608 Revert "refactor: remove several blanket impls to allow more customization"
This reverts commit eb26e9f557bdefc2baa9eb4a89717dfabb55e5a1.
2020-06-27 18:54:50 -07:00
Ryan Leckey
eb26e9f557 refactor: remove several blanket impls to allow more customization 2020-06-27 04:05:23 -07:00
Ryan Leckey
aaa475cc33 refactor: move Decode::accepts to Type::compatible 2020-06-21 03:55:31 -07:00
Ryan Leckey
5ac7601fe2 docs: extend documentation on Encode/Decode 2020-06-21 03:55:31 -07:00
Ryan Leckey
e3adb88ab5 feat: disassociate Type from Decode further and require only Decode for FromRow + Row + Value 2020-06-21 03:55:31 -07:00
Ryan Leckey
e10c7c723f refactor: remove impl of Encode::produces where it doesn't make sense
produces is meant as a value-dependent override, it only makes sense
currently for MSSQL or in generic contexts
2020-06-13 10:18:04 -07:00
Caio
d4329e98d4 refactor: prepare to support postgres ranges
- Remove Type bound from Encode + Decode which removes the defaults 
   for produces() and accepts(). This allows custom type implementations
   to be more flexible.
2020-06-12 15:33:19 -07:00
Ryan Leckey
757a930e21
refactor(core): remove the HRTB (higher rank trait bound) on Row in the aim of improving ergonomics
* removes the lifetime from Row

 * removes MySqlQueryAs, SqliteQueryAs, etc. (no longer needed)

 * introduce query_scalar

 * introduce Decode::accepts to allow overriding runtime type checking
   per-type (replaces TypeInfo::compatible)

 * introduce Encode::produces to allow overriding the encoded type per-value

 * adds a lifetime to Arguments (and introduce the HRTB HasArguments)
   to support zero-copy encoding with SQLite

 * renames Database::RawBuffer to HasArguments::ArgumentBuffer

 * introduce Connect::connect_with to provide an ConnectOptions type
   explicitly to opt-out of connection string parsing

 * introduce Value and ValueRef traits to allow decoding-deferred
   extraction of values from Rows

 * introduce Encode::encode_by_ref and change Encode::encode to take
   by-value to try and re-use memory where possible

 * use thiserror to generate sqlx::Error

 * [!] temporarily removes query logging

 * [!] temporarily removes transactions
2020-05-30 16:09:08 -07:00
Austin Bonander
673f133cab un-generify Error and support downcasting in DatabaseError 2020-03-25 18:13:56 -07:00
Ryan Leckey
918a797581 move HasX types into the module where X is 2020-03-25 01:44:00 -07:00
Ryan Leckey
aa1cb24de9 remove DecodeOwned 2020-03-24 03:03:04 -07:00
Daniel Akhterov
cbdc1bbfb2 Refactor the error to be generic over database 2020-03-20 23:51:45 -07:00
Ryan Leckey
24d62dd464 Add DecodeOwned to help with trait bounds on owned data 2020-03-20 19:54:44 -07:00
Ryan Leckey
b8cd2e9388 remove unused imports 2020-03-11 01:45:04 -07:00
Ryan Leckey
47f3d77e59 query_as: fully implement query_as, required a db-specific ext trait 2020-03-11 01:44:41 -07:00
Ryan Leckey
433aab1e5b postgres: use RawValue in Decode and implement row-returning simple queries 2020-03-11 01:44:06 -07:00
Ryan Leckey
9f1cf953c0 decode: use HasRawValue 2020-03-11 01:43:27 -07:00
Ryan Leckey
dd5f250e5e decode: add lifetime to Decode; impl Decode for &str and &[u8]; remove DecodeError 2020-03-11 01:43:27 -07:00
Ryan Leckey
a374c18a18 postgres: rewrite protocol in more iterative and lazy fashion 2020-03-11 01:43:17 -07:00
Ryan Leckey
98269ddd20 Fix several nits from Clippy and add back chrono support for MySql 2019-12-27 23:16:13 -08:00
Ryan Leckey
d76b1357da Audit MySql and Postgres protocols 2019-12-27 17:31:01 -08:00
Austin Bonander
d332558b25 rename FromSql/ToSql -> Decode/Encode
closes #18
2019-11-22 11:05:17 +00:00