-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
enhancementNew feature or requestNew feature or request
Description
I believe output like with ts-proto when it's possible to encode plain objects would be much beter then using classes:
message ImageEditDescriptor {
oneof type {
bytes replacement = 1;
string key = 2;
}
}output ts:
export interface ImageEditDescriptor {
type?: { $case: "replacement"; replacement: Uint8Array } | { $case: "key"; key: string } | undefined;
}
export const ImageEditDescriptor = {
encode(message: ImageEditDescriptor, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
switch (message.type?.$case) {
case "replacement":
writer.uint32(10).bytes(message.type.replacement);
break;
case "key":
writer.uint32(18).string(message.type.key);
break;
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): ImageEditDescriptor {
const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseImageEditDescriptor();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
if (tag !== 10) {
break;
}
message.type = { $case: "replacement", replacement: reader.bytes() };
continue;
case 2:
if (tag !== 18) {
break;
}
message.type = { $case: "key", key: reader.string() };
continue;
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skipType(tag & 7);
}
return message;
},
create<I extends Exact<DeepPartial<ImageEditDescriptor>, I>>(base?: I): ImageEditDescriptor {
return ImageEditDescriptor.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<ImageEditDescriptor>, I>>(object: I): ImageEditDescriptor {
const message = createBaseImageEditDescriptor();
if (
object.type?.$case === "replacement" &&
object.type?.replacement !== undefined &&
object.type?.replacement !== null
) {
message.type = { $case: "replacement", replacement: object.type.replacement };
}
if (object.type?.$case === "key" && object.type?.key !== undefined && object.type?.key !== null) {
message.type = { $case: "key", key: object.type.key };
}
return message;
},
};Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request