with Ada.Exceptions;
with Rx.Contracts;
with Rx.Errors;
generic
with package Contracts is new Rx.Contracts (<>);
package Rx.Defaults with Preelaborate is
-- Defaults to be used elsewhere
procedure Default_Error_Handler (This : in out Contracts.Observer'Class;
Except : Ada.Exceptions.Exception_Occurrence);
-- Calls down On_Error for non-critical exceptions, otherwise raises
-- If no downstream, just report
procedure Default_On_Error (E : Errors.Occurrence);
-- Dump error to console and re-raise
type Observer is new Contracts.Observer with null record;
-- Does nothing but properly reporting in On_Error
overriding procedure On_Next (This : in out Observer; V : Contracts.T) is null;
overriding procedure On_Complete (This : in out Observer) is null;
overriding procedure On_Error (This : in out Observer;
E : Errors.Occurrence);
end Rx.Defaults;