class_docstr: Flink-customized basic type decoder, with some different encodings, e.g. Default avro encode int
  and long into variable-sized bytes, while Flink use fixed bytes in some places.
class_docstr_tok: ["Flink-customized","basic","type","decoder",",","with","some","different","encodings",",","e.g",".","Default","avro","encode","int","and","long","into","variable-sized","bytes",",","while","Flink","use","fixed","bytes","in","some","places","."]
docstr: Flink implementation of variable-sized long serialization does not move sign to lower bit
  and flip the rest.
code: def read_var_long(self):
      """
      Flink implementation of variable-sized long serialization does not move sign to lower bit
      and flip the rest.
      """
      b = ord(self.read(1))
      n = b & 0x7F
      shift = 7
      while (b & 0x80) != 0:
          b = ord(self.read(1))
          n |= (b & 0x7F) << shift
          shift += 7
      return n
  
imports: import struct
  from avro.io import AvroTypeException, BinaryDecoder, BinaryEncoder, DatumReader, DatumWriter, SchemaResolutionException, Validate
label_desc: Use image node_id 4 for calling the FlinkAvroDecoder obj's underlying member method code with example usage: obj.read_var_long() and returns: n