// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace CommunityToolkit.Mvvm.SourceGenerators.ComponentModel.Models;
///
/// A model with gathered info on a given ObservableRecipientAttribute instance.
///
/// The type name of the type being annotated.
/// Whether or not the target type has explicit constructors.
/// Whether or not the target type is abstract.
/// Whether or not the target type inherits from ObservableValidator.
/// Whether or not the RequiresUnreferencedCodeAttribute type is available.
/// Whether the target type has a custom OnActivated() method.
/// Whether the target type has a custom OnDeactivated() method.
public sealed record ObservableRecipientInfo(
string TypeName,
bool HasExplicitConstructors,
bool IsAbstract,
bool IsObservableValidator,
bool IsRequiresUnreferencedCodeAttributeAvailable,
bool HasOnActivatedMethod,
bool HasOnDeactivatedMethod);