I don't understand. Fuel holding multiple streams ? why? for what?
e.g. for source code. Imagine storing Monticello packages in Fuel so that the source code is stored in the Fuel file and doesn't have to be written to the changes file. Instead, a more powerful SourceFilesArray (actually a source file manager) can maintain a set of source files, including Fuel files, and fetch source there-from. Hence loading is faster, and the changes file isn't polluted with code loads, containing only one's own code.
e.g. for external resources. imagine loading a Fuel package that also contains some dlls that can be unpacked as required.
But if you choose this route let me strongly suggest you use the zip file format. Its very useful with Monticello mcz's to be able to pick them apart using unzip.
Ok, I see. That makes sense. However, that won't be part of Fuel, but rather a tool build on top of it. Now we have the Fuel core a simple serializer. FuelMetalevel, an optional package build on top of Fuel core to be able to correctly serialize classes, methods, traits, etc. FuelPackageLoader, an optional package build on top of FuelMetalevel to experiment import/export of packages in a binary way. So....continue with that infrastructure, if there would be a Monticello integration with Fuel, then such package should take care about serializing different things in different streams. But so far, for Fuel core, and I think the best approach is to let is simple as it is now.
The the default Fuel system can then automatically ignore 3rd-party data.
I want to make my point clear: Martin proposed an example that solves Yanni problem. If you serialize with a stream with a certain position, then you have to materialize it with its correct position. Dot. It is perfect that the materializer is broken if you do not give him the correct stream. Now, I DO agree that there could be another solution rather than adhoc, supported by fuel so that BY DEFAULT some data could be set and ignored at the same time...so that there is no manipulation of the srteam by the user.
Cheers
-- Mariano http://marianopeck.wordpress.com
-- best, Eliot
-- Mariano http://marianopeck.wordpress.com