public ResolvedInclude read(Decoder decoder) throws Exception {
   String include = decoder.readString();
   File included = null;
   if (decoder.readBoolean()) {
     included = fileSerializer.read(decoder);
   }
   return new ResolvedInclude(include, included);
 }
  public CompilationState read(Decoder decoder) throws Exception {
    CompilationState compilationState = new CompilationState();
    int version = decoder.readInt();
    if (version != SERIAL_VERSION) {
      return compilationState;
    }

    compilationState.sourceInputs.addAll(fileListSerializer.read(decoder));
    compilationState.fileStates.putAll(stateMapSerializer.read(decoder));
    return compilationState;
  }
 public byte[] read(Decoder decoder) throws Exception {
   int size = decoder.readSmallInt();
   byte[] value = new byte[size];
   decoder.readBytes(value);
   return value;
 }