INNER CODE UNIT · Rust

generate_insert

stepancheg/rust-protobuf · protobuf-examples/issue-614/src/lib.rs:26

pub fn generate_insert(message: &dyn MessageDyn) -> String {
    let descriptor = message.descriptor_dyn();
    let table = table_name(&descriptor);
    let mut column_names = Vec::new();
    let mut column_values = Vec::new();
    for field in descriptor.fields() {
        if let Some(v) = field.get_singular(message) {
            if let Some(oneof) = field.containing_oneof() {
                column_names.push(format!("{}_type", oneof.name()));
                column_values.push(format!("'{}'", field.name()));
                column_names.push(format!("{}_value", oneof.name()));
                column_values.push(format!("'{}'", v));
            } else {
                column_names.push(field.name().to_owned());
                column_values.push(format!("'{}'", v));
            }
        }
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…