18 lines
767 B
C#
18 lines
767 B
C#
|
namespace RustTools.Activation;
|
|||
|
|
|||
|
// Extend this class to implement new ActivationHandlers. See DefaultActivationHandler for an example.
|
|||
|
// https://github.com/microsoft/TemplateStudio/blob/main/docs/WinUI/activation.md
|
|||
|
public abstract class ActivationHandler<T> : IActivationHandler
|
|||
|
where T : class
|
|||
|
{
|
|||
|
// Override this method to add the logic for whether to handle the activation.
|
|||
|
protected virtual bool CanHandleInternal(T args) => true;
|
|||
|
|
|||
|
// Override this method to add the logic for your activation handler.
|
|||
|
protected abstract Task HandleInternalAsync(T args);
|
|||
|
|
|||
|
public bool CanHandle(object args) => args is T && CanHandleInternal((args as T)!);
|
|||
|
|
|||
|
public async Task HandleAsync(object args) => await HandleInternalAsync((args as T)!);
|
|||
|
}
|