@@ -224,11 +224,19 @@ cdef class Dict(Provider):
224224 cpdef object _provide(self, tuple args, dict kwargs)
225225
226226
227- cdef class Resource(Provider):
227+ cdef class ResourceState:
228+ cdef object resource
229+ cdef object shutdowner
230+ cdef bint is_async
231+ cdef bint async_done
232+
233+ cdef void from_coro(self, coro, error_callback)
234+ cdef void from_async_context_manager(self, acm, error_callback)
235+ cdef object from_context_manager(self, cm, error_callback)
236+
237+
238+ cdef class BaseResource(Provider):
228239 cdef object _provides
229- cdef bint __initialized
230- cdef object __shutdowner
231- cdef object __resource
232240
233241 cdef tuple _args
234242 cdef int _args_len
@@ -237,12 +245,16 @@ cdef class Resource(Provider):
237245 cdef int _kwargs_len
238246
239247 cpdef object _provide(self, tuple args, dict kwargs)
248+ cdef void set_state(self, ResourceState state)
249+ cdef ResourceState get_state(self)
250+
251+
252+ cdef class Resource(BaseResource):
253+ cdef ResourceState _state
240254
241255
242- cdef class ContextLocalResource(Resource):
243- cdef object _resource_context_var
244- cdef object _initialized_context_var
245- cdef object _shutdowner_context_var
256+ cdef class ContextLocalResource(BaseResource):
257+ cdef object _cvar
246258
247259
248260cdef class Container(Provider):
0 commit comments