original_string: public function update_bit(string $id, array $cfg, $merge_config = false): ?int
    {
      if ( \bbn\str::is_uid($id) ){
        $c = $this->class_cfg['arch']['user_options_bits'];
        $fields = array_values($c);
        if ( \array_key_exists($c['id'], $cfg) ){
          unset($cfg[$c['id']]);
        }
        $to_cfg = $this->get_bit_cfg(null, $cfg);
        if ( isset($to_cfg['items']) ){
          unset($to_cfg['items']);
        }
        if ( !empty($to_cfg) ){
          if ( !empty($merge_config) && !empty($cfg[$c['cfg']]) ){
            if (  \bbn\str::is_json($cfg[$c['cfg']]) ){
              $cfg[$c['cfg']] = json_decode($cfg[$c['cfg']], true);
            }
            if ( \is_array($cfg[$c['cfg']]) ){
              $cfg[$c['cfg']] = array_merge($cfg[$c['cfg']], $to_cfg);
            }
            else {
              $cfg[$c['cfg']] = $to_cfg;
            }
          }
          else {
            $cfg[$c['cfg']] = $to_cfg;
          }
          $cfg[$c['cfg']] = json_encode($cfg[$c['cfg']]);
        }
        return $this->db->update($this->class_cfg['tables']['user_options_bits'], [
          $c['id_parent'] => $cfg[$c['id_parent']] ?? NULL,
          $c['id_option'] => $cfg[$c['id_option']] ?? NULL,
          $c['num'] => $cfg[$c['num']] ?? NULL,
          $c['text'] => $cfg[$c['text']] ?? '',
          $c['cfg'] => $cfg[$c['cfg']] ?? '',
        ], [
          $c['id'] => $id
        ]);
      }
      return null;
    }
code: public function update_bit(string $id, array $cfg, $merge_config = false): ?int
    {
      if ( \bbn\str::is_uid($id) ){
        $c = $this->class_cfg['arch']['user_options_bits'];
        $fields = array_values($c);
        if ( \array_key_exists($c['id'], $cfg) ){
          unset($cfg[$c['id']]);
        }
        $to_cfg = $this->get_bit_cfg(null, $cfg);
        if ( isset($to_cfg['items']) ){
          unset($to_cfg['items']);
        }
        if ( !empty($to_cfg) ){
          if ( !empty($merge_config) && !empty($cfg[$c['cfg']]) ){
            if (  \bbn\str::is_json($cfg[$c['cfg']]) ){
              $cfg[$c['cfg']] = json_decode($cfg[$c['cfg']], true);
            }
            if ( \is_array($cfg[$c['cfg']]) ){
              $cfg[$c['cfg']] = array_merge($cfg[$c['cfg']], $to_cfg);
            }
            else {
              $cfg[$c['cfg']] = $to_cfg;
            }
          }
          else {
            $cfg[$c['cfg']] = $to_cfg;
          }
          $cfg[$c['cfg']] = json_encode($cfg[$c['cfg']]);
        }
        return $this->db->update($this->class_cfg['tables']['user_options_bits'], [
          $c['id_parent'] => $cfg[$c['id_parent']] ?? NULL,
          $c['id_option'] => $cfg[$c['id_option']] ?? NULL,
          $c['num'] => $cfg[$c['num']] ?? NULL,
          $c['text'] => $cfg[$c['text']] ?? '',
          $c['cfg'] => $cfg[$c['cfg']] ?? '',
        ], [
          $c['id'] => $id
        ]);
      }
      return null;
    }
code_tokens: public function update_bit ( string $ id , array $ cfg , $ merge_config = false ) : ? int { if ( \ bbn \ str :: is_uid ( $ id ) ) { $ c = $ this -> class_cfg [ 'arch' ] [ 'user_options_bits' ] ; $ fields = array_values ( $ c ) ; if ( \ array_key_exists ( $ c [ 'id' ] , $ cfg ) ) { unset ( $ cfg [ $ c [ 'id' ] ] ) ; } $ to_cfg = $ this -> get_bit_cfg ( null , $ cfg ) ; if ( isset ( $ to_cfg [ 'items' ] ) ) { unset ( $ to_cfg [ 'items' ] ) ; } if ( ! empty ( $ to_cfg ) ) { if ( ! empty ( $ merge_config ) && ! empty ( $ cfg [ $ c [ 'cfg' ] ] ) ) { if ( \ bbn \ str :: is_json ( $ cfg [ $ c [ 'cfg' ] ] ) ) { $ cfg [ $ c [ 'cfg' ] ] = json_decode ( $ cfg [ $ c [ 'cfg' ] ] , true ) ; } if ( \ is_array ( $ cfg [ $ c [ 'cfg' ] ] ) ) { $ cfg [ $ c [ 'cfg' ] ] = array_merge ( $ cfg [ $ c [ 'cfg' ] ] , $ to_cfg ) ; } else { $ cfg [ $ c [ 'cfg' ] ] = $ to_cfg ; } } else { $ cfg [ $ c [ 'cfg' ] ] = $ to_cfg ; } $ cfg [ $ c [ 'cfg' ] ] = json_encode ( $ cfg [ $ c [ 'cfg' ] ] ) ; } return $ this -> db -> update ( $ this -> class_cfg [ 'tables' ] [ 'user_options_bits' ] , [ $ c [ 'id_parent' ] => $ cfg [ $ c [ 'id_parent' ] ] ?? NULL , $ c [ 'id_option' ] => $ cfg [ $ c [ 'id_option' ] ] ?? NULL , $ c [ 'num' ] => $ cfg [ $ c [ 'num' ] ] ?? NULL , $ c [ 'text' ] => $ cfg [ $ c [ 'text' ] ] ?? '' , $ c [ 'cfg' ] => $ cfg [ $ c [ 'cfg' ] ] ?? '' , ] , [ $ c [ 'id' ] => $ id ] ) ; } return null ; }
docstring: Updates a preference's bit
  
  @param string $id The bit's ID
  @param array The bit's values
  @return int|null
docstring_tokens: Updates a preference s bit