@Override
    public Edge readEdge(final InputStream inputStream, final Function<Attachable<Edge>, Edge> edgeAttachMethod) throws IOException {
        final Input input = new Input(inputStream);
        readHeader(input);
        final Attachable<Edge> attachable = kryo.readObject(input, DetachedEdge.class);
        return edgeAttachMethod.apply(attachable);
    }
Read an {@link Edge} from output generated by {@link GryoWriter#writeEdge(OutputStream, Edge)} or via
an {@link Edge} passed to {@link GryoWriter#writeObject(OutputStream, Object)}.

@param inputStream      a stream containing at least one {@link Edge} as defined by the accompanying
                        {@link GraphWriter#writeEdge(OutputStream, Edge)} method.
@param edgeAttachMethod a function that creates re-attaches a {@link Edge} to a {@link Host} object.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoReader.java