namespace SingularityGroup.HotReload.Editor.ProjectGeneration {
///
/// Allows to post process Hot Reload's project generation.
/// This should only be needed if you tinker with Unity's project generation as well.
/// Types that inherit from this interface will get created automatically whenever Hot Reload generates project files.
/// Types that implement this interface need to have a public parameterless default constructor.
///
public interface IHotReloadProjectGenerationPostProcessor {
///
/// Specifies the ordering of the post processor.
/// Post processors with lower callback order get executed first.
///
int CallbackOrder { get; }
///
/// Use this method to set up state you need for the project generation.
/// Calls to unity API need to happen here and it's values need to be cached.
/// This is the only method that will get executed on the main thread.
///
void InitializeOnMainThread();
///
/// Gets called whenever Hot Reload generated a project file.
/// The destination file path for the .csproj file
/// The file contents of the .csproj file
///
string OnGeneratedCSProjectThreaded(string path, string contents);
///
/// Gets called whenever Hot Reload generated a solution file.
/// The destination file path for the .sln file
/// The file contents of the .sln file
///
string OnGeneratedSlnSolutionThreaded(string path, string contents);
///
/// Gets called after Hot Reload project generation is finished.
///
void OnGeneratedCSProjectFilesThreaded();
}
}