namespace Unity.VisualScripting { public struct ScriptReferenceReplacement { public ScriptReference previousReference; public ScriptReference newReference; public ScriptReferenceReplacement(ScriptReference previousReference, ScriptReference newReference) { this.previousReference = previousReference; this.newReference = newReference; } public static ScriptReferenceReplacement From<T>(ScriptReference previous) { return new ScriptReferenceReplacement(previous, ScriptReference.Existing(typeof(T))); } public static ScriptReferenceReplacement FromDll<T>(string dllGuid) { return new ScriptReferenceReplacement(ScriptReference.Dll(dllGuid, typeof(T)), ScriptReference.Existing(typeof(T))); } public static ScriptReferenceReplacement FromCs<T>(string csGuid) { return new ScriptReferenceReplacement(ScriptReference.Cs(csGuid), ScriptReference.Existing(typeof(T))); } public override string ToString() { return previousReference + " => " + newReference; } } }