38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
 | 
						|
namespace StellaOps.Concelier.Exporter.Json;
 | 
						|
 | 
						|
/// <summary>
 | 
						|
/// Metadata describing a single file produced by the JSON exporter.
 | 
						|
/// </summary>
 | 
						|
public sealed class JsonExportFile
 | 
						|
{
 | 
						|
    public JsonExportFile(string relativePath, long length, string digest)
 | 
						|
    {
 | 
						|
        RelativePath = relativePath ?? throw new ArgumentNullException(nameof(relativePath));
 | 
						|
        if (relativePath.Length == 0)
 | 
						|
        {
 | 
						|
            throw new ArgumentException("Relative path cannot be empty.", nameof(relativePath));
 | 
						|
        }
 | 
						|
 | 
						|
        if (length < 0)
 | 
						|
        {
 | 
						|
            throw new ArgumentOutOfRangeException(nameof(length));
 | 
						|
        }
 | 
						|
 | 
						|
        Digest = digest ?? throw new ArgumentNullException(nameof(digest));
 | 
						|
        if (digest.Length == 0)
 | 
						|
        {
 | 
						|
            throw new ArgumentException("Digest cannot be empty.", nameof(digest));
 | 
						|
        }
 | 
						|
 | 
						|
        Length = length;
 | 
						|
    }
 | 
						|
 | 
						|
    public string RelativePath { get; }
 | 
						|
 | 
						|
    public long Length { get; }
 | 
						|
 | 
						|
    public string Digest { get; }
 | 
						|
}
 |