Concept for any RPP-related operator:
- operator should have type-traits: template sub-struct operator_traits where template typename is type of upstream.
- Such and sub-struct should have result_type using to type of final observable/downstream observer
- You can place any static_asserts to this operator_traits if you have some specific requiremenets
- operator should have template using updated_optimal_disposables_strategy accepting rpp::details::observables::disposbles_strategy and returning new (updated) strategy to provide optimal behavior. For example, your operator could add+1 disposables to the strategy
- operator should satisfy rpp::constraint::operator_subscribe, rpp::constraint::operator_lift or rpp::constraint::operator_lift_with_disposables_strategy