using FrostFS.SDK.ClientV2.Mappers.GRPC.Netmap; using FrostFS.SDK.Cryptography; using FrostFS.SDK.ModelsV2.Enums; using Google.Protobuf; namespace FrostFS.SDK.ClientV2.Mappers.GRPC; public static class ContainerMapper { public static Container.Container ToGrpcMessage(this ModelsV2.Container container) { return new Container.Container { BasicAcl = (uint)container.BasicAcl, PlacementPolicy = container.PlacementPolicy.ToGrpcMessage(), Nonce = ByteString.CopyFrom(container.Nonce.ToBytes()) }; } public static ModelsV2.Container ToModel(this Container.Container container) { var basicAclName = Enum.GetName(typeof(BasicAcl), container.BasicAcl); if (basicAclName is null) { throw new ArgumentException($"Unknown BasicACL rule. Value: '{container.BasicAcl}'."); } return new ModelsV2.Container( Enum.Parse<BasicAcl>(basicAclName), container.PlacementPolicy.ToModel() ) { Nonce = container.Nonce.ToUuid(), Version = container.Version.ToModel() }; } }