Evgenii Stratonikov
5e1c6a908f
All checks were successful
DCO action / DCO (pull_request) Successful in 41s
Tests and linters / Tests (1.22) (pull_request) Successful in 55s
Tests and linters / Tests (1.23) (pull_request) Successful in 57s
Tests and linters / Tests with -race (pull_request) Successful in 1m8s
Tests and linters / Lint (pull_request) Successful in 2m12s
``` goos: linux goarch: amd64 pkg: git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz │ old │ new │ │ sec/op │ sec/op vs base │ ObjectIDSlice/0_elements/to_grpc_message-8 3.193n ± 2% 3.242n ± 0% +1.50% (p=0.034 n=10) ObjectIDSlice/0_elements/from_grpc_message-8 3.197n ± 2% 3.343n ± 1% +4.57% (p=0.000 n=10) ObjectIDSlice/0_elements/marshal-8 5.666n ± 3% 5.642n ± 0% -0.42% (p=0.000 n=10) ObjectIDSlice/1_elements/to_grpc_message-8 53.10n ± 6% 29.78n ± 12% -43.92% (p=0.000 n=10) ObjectIDSlice/1_elements/from_grpc_message-8 28.99n ± 5% 29.77n ± 7% ~ (p=0.165 n=10) ObjectIDSlice/1_elements/marshal-8 49.08n ± 7% 50.72n ± 6% ~ (p=0.218 n=10) ObjectIDSlice/50_elements/to_grpc_message-8 1652.5n ± 7% 277.2n ± 1% -83.22% (p=0.000 n=10) ObjectIDSlice/50_elements/from_grpc_message-8 261.2n ± 11% 226.7n ± 15% -13.19% (p=0.003 n=10) ObjectIDSlice/50_elements/marshal-8 1.512µ ± 6% 1.514µ ± 6% ~ (p=0.955 n=10) geomean 52.15n 39.99n -23.31% │ old │ new │ │ B/op │ B/op vs base │ ObjectIDSlice/0_elements/to_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/0_elements/from_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/0_elements/marshal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/1_elements/to_grpc_message-8 32.00 ± 0% 24.00 ± 0% -25.00% (p=0.000 n=10) ObjectIDSlice/1_elements/from_grpc_message-8 24.00 ± 0% 24.00 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/1_elements/marshal-8 48.00 ± 0% 48.00 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/50_elements/to_grpc_message-8 1.578Ki ± 0% 1.250Ki ± 0% -20.79% (p=0.000 n=10) ObjectIDSlice/50_elements/from_grpc_message-8 1.250Ki ± 0% 1.250Ki ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/50_elements/marshal-8 2.000Ki ± 0% 2.000Ki ± 0% ~ (p=1.000 n=10) ¹ geomean ² -5.62% ² ¹ all samples are equal ² summaries must be >0 to compute geomean │ old │ new │ │ allocs/op │ allocs/op vs base │ ObjectIDSlice/0_elements/to_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/0_elements/from_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/0_elements/marshal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/1_elements/to_grpc_message-8 2.000 ± 0% 1.000 ± 0% -50.00% (p=0.000 n=10) ObjectIDSlice/1_elements/from_grpc_message-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/1_elements/marshal-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/50_elements/to_grpc_message-8 51.000 ± 0% 1.000 ± 0% -98.04% (p=0.000 n=10) ObjectIDSlice/50_elements/from_grpc_message-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹ ObjectIDSlice/50_elements/marshal-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹ geomean ² -40.18% ² ¹ all samples are equal ² summaries must be >0 to compute geomean ``` Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
95 lines
1.6 KiB
Go
95 lines
1.6 KiB
Go
package status
|
|
|
|
import (
|
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
status "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
|
|
)
|
|
|
|
func (x *Detail) ToGRPCMessage() grpc.Message {
|
|
var m *status.Status_Detail
|
|
|
|
if x != nil {
|
|
m = new(status.Status_Detail)
|
|
|
|
m.SetId(x.id)
|
|
m.SetValue(x.val)
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func (x *Detail) FromGRPCMessage(m grpc.Message) error {
|
|
v, ok := m.(*status.Status_Detail)
|
|
if !ok {
|
|
return message.NewUnexpectedMessageType(m, v)
|
|
}
|
|
|
|
x.id = v.GetId()
|
|
x.val = v.GetValue()
|
|
|
|
return nil
|
|
}
|
|
|
|
func CodeFromGRPC(v uint32) Code {
|
|
return Code(v)
|
|
}
|
|
|
|
func CodeToGRPC(v Code) uint32 {
|
|
return uint32(v)
|
|
}
|
|
|
|
func (x *Status) ToGRPCMessage() grpc.Message {
|
|
var m *status.Status
|
|
|
|
if x != nil {
|
|
m = new(status.Status)
|
|
|
|
m.SetCode(CodeToGRPC(x.code))
|
|
m.SetMessage(x.msg)
|
|
|
|
var ds []status.Status_Detail
|
|
|
|
if ln := len(x.details); ln > 0 {
|
|
ds = make([]status.Status_Detail, 0, ln)
|
|
|
|
for i := 0; i < ln; i++ {
|
|
ds = append(ds, *x.details[i].ToGRPCMessage().(*status.Status_Detail))
|
|
}
|
|
}
|
|
|
|
m.SetDetails(ds)
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func (x *Status) FromGRPCMessage(m grpc.Message) error {
|
|
v, ok := m.(*status.Status)
|
|
if !ok {
|
|
return message.NewUnexpectedMessageType(m, v)
|
|
}
|
|
|
|
var (
|
|
ds []Detail
|
|
dsV2 = v.GetDetails()
|
|
)
|
|
|
|
if dsV2 != nil {
|
|
ln := len(dsV2)
|
|
|
|
ds = make([]Detail, ln)
|
|
|
|
for i := 0; i < ln; i++ {
|
|
if err := ds[i].FromGRPCMessage(&dsV2[i]); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
x.details = ds
|
|
x.msg = v.GetMessage()
|
|
x.code = CodeFromGRPC(v.GetCode())
|
|
|
|
return nil
|
|
}
|