/// <summary> /// Delegates the accept operation to the wrapped monad. /// </summary> public TReturn Accept <TReturn>(IMonadVisitor <TValue, TReturn> visitor) { String stringified = StringifyMonad(InnerMonad); Logger.LogInformation($"Accepting visitor with monad: <{stringified}>."); return(InnerMonad.Accept(visitor)); }
/// <summary> /// </summary> /// <typeparam name="TReturn"></typeparam> /// <param name="visitor"></param> /// <returns></returns> public virtual TReturn Accept <TReturn>(IMonadVisitor <TValue, TReturn> visitor) { return(visitor.VisitError(ErrorMessage)); }
/// <summary> /// Delegates the accept operation to the wrapped monad. /// </summary> public TReturn Accept <TReturn>(IMonadVisitor <TValue, TReturn> visitor) { return(InnerMonad.Accept(visitor)); }
/// <summary> /// </summary> /// <typeparam name="TReturn"></typeparam> /// <param name="visitor"></param> /// <returns></returns> public virtual TReturn Accept <TReturn>(IMonadVisitor <TValue, TReturn> visitor) { return(visitor.VisitUnauthorized()); }
/// <summary> /// Calls the "VisitValue" method on the visitor, passing the wrapped value as a parameter. /// </summary> /// <typeparam name="TReturn">Return type of the input visitor.</typeparam> /// <param name="visitor">Monad visitor to accept.</param> /// <returns>Result of the value visit.</returns> public virtual TReturn Accept <TReturn>(IMonadVisitor <TValue, TReturn> visitor) { return(visitor.VisitValue(Value)); }