using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEngine;
namespace Unity.VisualScripting
{
///
/// Exposes all members of the type.
///
[SpecialUnit]
public sealed class Expose : Unit, IAotStubbable
{
public Expose() : base() { }
public Expose(Type type) : base()
{
this.type = type;
}
[Serialize, Inspectable, TypeFilter(Enums = false)]
public Type type { get; set; }
[Serialize, Inspectable, UnitHeaderInspectable("Instance"), InspectorToggleLeft]
public bool instance { get; set; } = true;
[Serialize, Inspectable, UnitHeaderInspectable("Static"), InspectorToggleLeft]
public bool @static { get; set; } = true;
///
/// The instance of the exposed type.
///
[DoNotSerialize]
[PortLabelHidden]
[NullMeansSelf]
public ValueInput target { get; private set; }
[DoNotSerialize]
public Dictionary members { get; private set; }
public override bool canDefine => type != null;
public override IEnumerable