using UnityEditor.Build.Content; using UnityEditor.Build.Pipeline.Utilities; using UnityEngine; namespace UnityEditor.Build.Pipeline.Interfaces { /// /// Base interface for wrapping the different low level WriteSerializeFile API around a common high level Write function /// public interface IWriteOperation { /// /// The specific write command containing the details about what to write to disk. /// /// WriteCommand Command { get; set; } /// /// The specific usage data for objects in the write command. /// /// BuildUsageTagSet UsageSet { get; set; } /// /// The specific reference data for objects in the write command. /// /// BuildReferenceMap ReferenceMap { get; set; } /// /// The hash that represents the unique set of input dependencies for caching this write command. /// Hash128 DependencyHash { get; set; } /// /// Write function that wraps the low level WriteSerializeFile APIs that takes the common minimum set of parameters. /// /// The location to write data to disk. /// The build settings to use for writing data. /// The global usage to use for writing data. /// The write results struct containing details about what was written to disk WriteResult Write(string outputFolder, BuildSettings settings, BuildUsageTagGlobal globalUsage); /// /// Optimized hash function for use with the Build Cache system. /// /// Unique hash for the contents of this write operation. Hash128 GetHash128(); /// /// Optimized hash function for use with the Build Cache system. /// /// The build log. /// Unique hash for the contents of this write operation. Hash128 GetHash128(IBuildLogger log); } }