bitfl0wer
546f925e06
Remove `Send` bound
2023-08-15 20:18:11 +02:00
bitfl0wer
38e661075f
Try calling new method to see if it panics
2023-08-15 17:54:48 +02:00
bitfl0wer
86e8edde27
Make trait pub
2023-08-15 17:54:36 +02:00
bitfl0wer
a1a99aff8d
Add Composite to some types
2023-08-15 17:38:53 +02:00
bitfl0wer
7a21154726
Remove superfluous nesting
2023-08-15 17:08:27 +02:00
bitfl0wer
d30542c783
Implement trait methods
2023-08-15 16:58:20 +02:00
bitfl0wer
69c8b8d076
Try out new macro
2023-08-15 16:58:06 +02:00
bitfl0wer
ec20258abe
Add observe_and_get method
2023-08-15 16:57:54 +02:00
bitfl0wer
d819f6e973
Use async trait where needed
2023-08-15 16:57:35 +02:00
bitfl0wer
02eacf65f6
Add async-trait
2023-08-15 16:57:08 +02:00
bitfl0wer
01c572b6f4
Update syn dependency
2023-08-15 12:36:53 +02:00
bitfl0wer
f9b9efffa4
todo
2023-08-15 12:14:03 +02:00
bitfl0wer
316d02b72b
Add macro and attributes for automatic watching of Composite structs and their components
2023-08-15 12:13:49 +02:00
bitfl0wer
05baec3820
derive Updateable for Guild
2023-08-14 17:18:53 +02:00
bitfl0wer
ab21dbb90a
Add Composite trait
2023-08-14 17:18:44 +02:00
bitfl0wer
71b1839250
Remove unused import
2023-08-14 00:04:58 +02:00
bitfl0wer
68868e7d35
Remove stupid comment from me
2023-08-14 00:04:53 +02:00
bitfl0wer
f0f47315a1
Rename get to get_user
2023-08-14 00:02:30 +02:00
bitfl0wer
888a86903b
Change UserMeta::get() to take self instead of Self
2023-08-14 00:02:03 +02:00
bitfl0wer
9ce575944c
Change UpdateMessage<T> to write into RwLock
2023-08-13 16:46:57 +02:00
bitfl0wer
8ca4ba6e50
Change observe() again, pass Arc<RwLock<T>> into message.update(), Add comment explaining closure
2023-08-13 16:46:21 +02:00
bitfl0wer
8de2aee513
Update test to match code changes
2023-08-13 16:44:58 +02:00
bitfl0wer
f5d74c57a4
Remove channel_id argument from modify. WHY WAS IT THERE TO BEGIN WITH LOL
2023-08-13 15:54:25 +02:00
bitfl0wer
33d5675cc4
Change tests to deal with `Arc<RwLock<T>>`'s
2023-08-13 15:54:07 +02:00
bitfl0wer
041ee223c3
Moddify observe to still store T internally
2023-08-13 15:52:16 +02:00
fowb
582d855662
Change T: Updateable to Arc<RwLock<T>>
2023-08-12 22:40:40 +02:00
fowb
bca1092dd0
Add fixme comment
2023-08-12 22:40:07 +02:00
fowb
d28f19d8ca
Change observe() to take Arc<RwLock<T>>
2023-08-12 19:47:11 +02:00
fowb
b672dd221c
Change Mutex<T> to RwLock<T>
2023-08-12 19:31:31 +02:00
fowb
62b3f35fa2
Merge branch 'main' into enhancement/improved-auto-updating-structs
2023-08-12 19:04:25 +02:00
kozabrada123
5faee2cbd1
Fix trailing /s ( #180 )
2023-08-12 16:48:33 +02:00
kozabrada123
855a4278df
Minor snowflake updates ( #179 )
...
* Make snowflake fully public
* Simple into for snowflake
2023-08-07 20:34:58 +02:00
Flori
b6ab9d47ad
Fix unwrap panic on trying to access rate limits ( #178 )
2023-08-07 14:56:32 +02:00
bitfl0wer
207e67396a
Fix unwrap panic on trying to access rate limits
2023-08-07 14:56:10 +02:00
kozabrada123
6d5a1ad295
Minor improvements to message events ( #177 )
2023-08-07 14:15:23 +02:00
bitfl0wer
b2a3294b5d
update mutex to rwlock
2023-08-04 20:08:49 +02:00
bitfl0wer
38a97fc37a
Change Arc<Mutex<T>> components to Arc<RwLock<T>>
2023-08-04 17:57:03 +02:00
bitfl0wer
1eb581c049
Add note about Gateway: store
2023-08-04 16:54:56 +02:00
bitfl0wer
9fe55559c7
Add note about GatewayHandle: `store`
2023-08-04 16:54:03 +02:00
bitfl0wer
1154cc98a1
Make message mut
2023-08-04 16:46:22 +02:00
bitfl0wer
043aaf5e59
Add clone bound to T
2023-08-04 16:46:15 +02:00
bitfl0wer
adb5b47bbd
Fix channel.rs
2023-08-04 16:41:57 +02:00
bitfl0wer
9fec38142c
Add update_object
2023-08-04 16:41:51 +02:00
bitfl0wer
2fe95ccc06
Add JsonField derive
2023-08-04 16:41:37 +02:00
Flori
a51d524f46
Components and Composites ( #175 )
...
As described in #165 , Gateway induced changes of entity structs do not
get propagated to other structs holding the "same" object which got
updated. This is bad because it means that structs still hold
potentially outdated info.
My proposed solution is to create components and composites. A component
is an object with information which is supposed to be the same in at
least 2 structs, such as a Channel object ("channels" field in Guild
struct and lone Channel object for example). These components should be
shared instead of cloned, to make sure that an update to this shared
structs fields is reflected everywhere the struct is being used.
We can do this by using `Arc<Mutex<T>>`. Mutex can be the
std::sync::Mutex, as long as locks on the components themselves are not
being held across .await points. ~~This draft is not yet finished, but~~
all instances of components in composite entity structs have been
replaced with their `Arc<Mutex<T>>` counterparts already.
2023-08-04 15:55:47 +02:00
Flori
f74214e181
Merge pull request #1 from kozabrada123/prototype/component-and-composites
...
Re-add derives to structs where possible
2023-08-04 15:48:34 +02:00
kozabrada123
4d0f27a668
Re-add derives to structs where possible
2023-08-04 15:33:46 +02:00
bitfl0wer
126d411b54
Fix deadlock on test_get_mutual_relationships
2023-08-04 11:42:28 +02:00
bitfl0wer
5926cbb70e
Fix deadlock in test_get_relationships
2023-08-04 11:34:03 +02:00
bitfl0wer
578b4c2fa9
Integrate component behaviour everywhere
2023-08-04 11:19:23 +02:00