internal static ProgramStateModel InitializeProgramState(ProgramStateModel.ProgramModeType mode, FileInfo sourceFile, FileInfo targetFile)
        {
            if (!sourceFile.Exists)
            {
                throw new ArgumentNullException("Source file does not exists");
            }

            return(ProgramStateModel.Of(sourceFile, targetFile, mode));
        }
 internal static ProgramStateModel OpenStreams(this ProgramStateModel model) =>
 FileReader.OpenFiles(model);
 internal static Result <ExitCode> ProcessFilesOperation(this ProgramStateModel model)
 {
     using var worker = model switch
           {
               { ProgramMode : ProgramStateModel.ProgramModeType.Compress, InputOutputStreams : var(inputStream, outputStream) }