1
1
use std:: cell:: RefCell ;
2
2
use std:: sync:: Arc ;
3
3
use std:: sync:: LazyLock ;
4
- use std:: sync:: OnceLock ;
5
4
6
5
use arc_swap:: ArcSwapOption ;
7
6
use bytes:: Bytes ;
7
+ use prost:: Message ;
8
8
9
9
#[ global_allocator]
10
10
static ALLOC : wee_alloc:: WeeAlloc = wee_alloc:: WeeAlloc :: INIT ;
@@ -24,20 +24,18 @@ use wasm_msg::WasmResult;
24
24
pub mod proto {
25
25
include ! ( concat!( env!( "OUT_DIR" ) , "/rust_guest.rs" ) ) ;
26
26
}
27
- use proto:: { ResolveSimpleRequest , Void } ;
28
-
29
- use crate :: proto:: { LogAssignRequest , LogResolveRequest , SdkId } ;
27
+ use crate :: proto:: SetResolverStateRequest ;
30
28
use confidence_resolver:: {
31
29
proto:: {
32
30
confidence:: flags:: admin:: v1:: ResolverState as ResolverStatePb ,
33
- confidence:: flags:: resolver:: v1:: resolve_token_v1:: AssignedFlag ,
34
31
confidence:: flags:: resolver:: v1:: {
35
32
ResolveFlagsRequest , ResolveFlagsResponse , ResolvedFlag , Sdk ,
36
33
} ,
37
34
google:: { Struct , Timestamp } ,
38
35
} ,
39
36
Client , FlagToApply , Host , ResolveReason , ResolvedValue , ResolverState ,
40
37
} ;
38
+ use proto:: { ResolveSimpleRequest , Void } ;
41
39
42
40
impl Into < proto:: FallthroughAssignment >
43
41
for confidence_resolver:: proto:: confidence:: flags:: resolver:: v1:: events:: FallthroughAssignment
@@ -53,8 +51,6 @@ impl Into<proto::FallthroughAssignment>
53
51
}
54
52
55
53
const VOID : Void = Void { } ;
56
-
57
- const ACCOUNT_ID : & str = "confidence-test" ;
58
54
const ENCRYPTION_KEY : Bytes = Bytes :: from_static ( & [ 0 ; 16 ] ) ;
59
55
60
56
// TODO simplify by assuming single threaded?
@@ -180,8 +176,10 @@ fn get_resolver_state() -> Result<Arc<ResolverState>, String> {
180
176
}
181
177
182
178
wasm_msg_guest ! {
183
- fn set_resolver_state( request: ResolverStatePb ) -> WasmResult <Void > {
184
- let new_state = ResolverState :: from_proto( request, ACCOUNT_ID ) ?;
179
+ fn set_resolver_state( request: SetResolverStateRequest ) -> WasmResult <Void > {
180
+ let state_pb = ResolverStatePb :: decode( request. state. as_slice( ) )
181
+ . map_err( |e| format!( "Failed to decode resolver state: {}" , e) ) ?;
182
+ let new_state = ResolverState :: from_proto( state_pb, request. account_id. as_str( ) ) ?;
185
183
RESOLVER_STATE . store( Some ( Arc :: new( new_state) ) ) ;
186
184
Ok ( VOID )
187
185
}
0 commit comments