You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
11 months ago
|
using System;
|
||
|
|
||
|
namespace UniRx.Diagnostics
|
||
|
{
|
||
|
public static class ObservableDebugExtensions
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Debug helper of observbale stream. Works for only DEBUG symbol.
|
||
|
/// </summary>
|
||
|
public static IObservable<T> Debug<T>(this IObservable<T> source, string label = null)
|
||
|
{
|
||
|
#if DEBUG
|
||
|
var l = (label == null) ? "" : "[" + label + "]";
|
||
|
return source.Materialize()
|
||
|
.Do(x => UnityEngine.Debug.Log(l + x.ToString()))
|
||
|
.Dematerialize()
|
||
|
.DoOnCancel(() => UnityEngine.Debug.Log(l + "OnCancel"))
|
||
|
.DoOnSubscribe(() => UnityEngine.Debug.Log(l + "OnSubscribe"));
|
||
|
|
||
|
#else
|
||
|
return source;
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Debug helper of observbale stream. Works for only DEBUG symbol.
|
||
|
/// </summary>
|
||
|
public static IObservable<T> Debug<T>(this IObservable<T> source, UniRx.Diagnostics.Logger logger)
|
||
|
{
|
||
|
#if DEBUG
|
||
|
return source.Materialize()
|
||
|
.Do(x => logger.Debug(x.ToString()))
|
||
|
.Dematerialize()
|
||
|
.DoOnCancel(() => logger.Debug("OnCancel"))
|
||
|
.DoOnSubscribe(() => logger.Debug("OnSubscribe"));
|
||
|
|
||
|
#else
|
||
|
return source;
|
||
|
#endif
|
||
|
}
|
||
|
}
|
||
|
}
|