internal static CompositeSharedOpaqueSealDirectory InternalDeserializeCompositeSharedOpaqueSealDirectory(PipReader reader) { DirectoryArtifact artifact = reader.ReadDirectoryArtifact(); var directory = new CompositeSharedOpaqueSealDirectory( artifact.Path, reader.ReadArray(reader1 => reader1.ReadDirectoryArtifact()), reader.ReadPipProvenance(), reader.ReadReadOnlyArray(reader1 => reader1.ReadStringId())); directory.SetDirectoryArtifact(artifact); Contract.Assume(directory.IsInitialized && directory.Directory == artifact); return(directory); }
internal static SealDirectory InternalDeserialize(PipReader reader) { var sealDirectoryType = (SealDirectoryType)reader.ReadByte(); switch (sealDirectoryType) { case SealDirectoryType.SealDirectory: return(InternalDeserializeSealDirectory(reader)); case SealDirectoryType.CompositeSharedOpaqueDirectory: return(CompositeSharedOpaqueSealDirectory.InternalDeserializeCompositeSharedOpaqueSealDirectory(reader)); default: throw new InvalidOperationException(I($"Unexpected seal directory type '{sealDirectoryType}'")); } }
internal static CompositeSharedOpaqueSealDirectory InternalDeserializeCompositeSharedOpaqueSealDirectory(PipReader reader) { DirectoryArtifact artifact = reader.ReadDirectoryArtifact(); var directory = new CompositeSharedOpaqueSealDirectory( artifact.Path, reader.ReadArray(reader1 => reader1.ReadDirectoryArtifact()), reader.ReadPipProvenance(), reader.ReadReadOnlyArray(reader1 => reader1.ReadStringId()), reader.ReadBoolean() ? new SealDirectoryContentFilter((SealDirectoryContentFilter.ContentFilterKind)reader.ReadByte(), reader.ReadString()) : (SealDirectoryContentFilter?)null, (SealDirectoryCompositionActionKind)reader.ReadByte()); directory.SetDirectoryArtifact(artifact); Contract.Assume(directory.IsInitialized && directory.Directory == artifact); return(directory); }