You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: upd.rs
    path of file: ./repos/skytable/server/src/engine/ql/dml
    
    the code of the file until where you have to start completion: /*
 * Created on Fri Jan 06 2023
 *
 * This file is a part of Skytable
 * Skytable (formerly known as Te
    
    pub fn parse_update<Qd: QueryData<'a>>(state: &mut State<'a, Qd>) -> QueryResult<Self> {
        /*
            TODO(@ohsayan): Allow volcanoes
            smallest tt:
            update model SET x  =  1 where x = 1
                   ^1    ^2  ^3 ^4 ^5^6    ^7^8^9
        */
        if compiler::unlikely(state.remaining() < 9) {
            return compiler::cold_rerr(QueryError::QLUnexpectedEndOfStatement);
        }
        // parse entity
        let entity = state.try_entity_buffered_into_state_uninit();
        if !(state.has_remaining(6)) {
            unsafe {
                // UNSAFE(@ohsayan): Obvious from above, max 3 fw
                impossible!();
            }
        }
        state.poison_if_not(state.cursor_eq(Token![set]));
        state.cursor_ahead(); // ignore errors if any
        let mut nx_where = false;
        let mut expressions = Vec::new();
        while state.not_exhausted() && state.okay() && !nx_where {
            AssignmentExpression::parse_and_append_expression(state, &mut expressions);
            let nx_comma = state.cursor_rounded_eq(Token![,]);
            nx_where = state.cursor_rounded_eq(Token![where]); // NOTE: volcano
            state.poison_if_not(nx_comma | nx_where);
            state.cursor_ahead_if(nx_comma);
        }
        state.poison_if_not(nx_where);
        state.cursor_ahead_if(state.okay());
        // check where clauses
        let mut clauses = <_ as Default>::default();
        WhereClause::parse_where_and_append_to(state, &mut clauses);
        state.poison_if(clauses.is_empty()); // NOTE: volcano
        if compiler::likely(state.okay()) {
            Ok(Self {
                entity: unsafe {
                    // UNSAFE(@ohsayan): This is safe because of `parse_entity` and `okay`
                    entity.assume_init()
                },
                expressions,
                wc: WhereClause::new(clauses),
            })
        } else {
            compiler::cold_rerr(QueryError::QLInvalidSyntax)
        }
    }