using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace MXJM.FileWritable
{
    public interface IFileWritable
    {
        string Description { get; }
        /// <summary>
        /// 用户数据
        /// </summary>
        object UserData { get; set; }
        /// <summary>
        /// 执行文件保存操作
        /// </summary>
        Task SaveAsync(CancellationToken cancellationToken = default);
        /// <summary>
        /// 同步保存文件
        /// </summary>
        void Save();
    }
}
