Any subscription-like object should implement a valid teardown logic.
using Rocket
struct MuCustomSubscription <: Teardown
# some fields here
end
Rocket.as_teardown(::Type{<:MuCustomSubscription}) = UnsubscribableTeardownLogic()
function on_unsubscribe!(subscription::MyCustomSubscription)
# dispose resources here
end
TeardownLogic
as_teardown
UnsubscribableTeardownLogic
on_unsubscribe!
CallableTeardownLogic
VoidTeardownLogic
InvalidTeardownLogic
Teardown
unsubscribe!
InvalidTeardownLogicTraitUsageError
InvalidMultipleTeardownLogicTraitUsageError
MissingOnUnsubscribeImplementationError