@Override public <T> Function<byte[], T> fromBytesFunction( ModuleDescriptor module, ValueType valueType ) { return bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ); }
@Override public <T> T fromBytes( ModuleDescriptor module, ValueType valueType, byte[] bytes ) { return deserialize( module, valueType, new ByteArrayInputStream( bytes ) ); }
@Override public <T> T deserialize( ModuleDescriptor module, ValueType valueType, String state ) { return deserialize( module, valueType, new StringReader( state ) ); }
@Override public <T> Function<String, T> deserializeFunction( ModuleDescriptor module, ValueType valueType ) { return state -> deserialize( module, valueType, new StringReader( state ) ); }
@Override public <T> Function<byte[], T> fromBytesFunction( ModuleDescriptor module, ValueType valueType ) { return bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ); }
@Override public <T> T fromBytes( ModuleDescriptor module, ValueType valueType, byte[] bytes ) { return deserialize( module, valueType, new ByteArrayInputStream( bytes ) ); }
@Override public <T> Function<String, T> deserializeFunction( ModuleDescriptor module, ValueType valueType ) { return state -> deserialize( module, valueType, new StringReader( state ) ); }
@Override public <T> Stream<T> fromBytesEach( ModuleDescriptor module, ValueType valueType, Iterable<byte[]> states ) { return StreamSupport.stream( states.spliterator(), false ) .map( bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ) ); }
@Override public <T> Stream<T> deserializeEach( ModuleDescriptor module, ValueType valueType, String... states ) { return Stream.of( states ).map( state -> deserialize( module, valueType, new StringReader( state ) ) ); }
@Override public <T> Stream<T> fromBytesEach( ModuleDescriptor module, ValueType valueType, byte[]... states ) { return Stream.of( states ).map( bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ) ); }
@Override public <T> Stream<T> fromBytesEach( ModuleDescriptor module, ValueType valueType, byte[]... states ) { return Stream.of( states ).map( bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ) ); }
@Override public <T> Stream<T> deserializeEach( ModuleDescriptor module, ValueType valueType, Iterable<String> states ) { return StreamSupport.stream( states.spliterator(), false ) .map( state -> deserialize( module, valueType, new StringReader( state ) ) ); }
@Override public <T> Stream<T> fromBytesEach( ModuleDescriptor module, ValueType valueType, Iterable<byte[]> states ) { return StreamSupport.stream( states.spliterator(), false ) .map( bytes -> deserialize( module, valueType, new ByteArrayInputStream( bytes ) ) ); }
@Override public <T> Stream<T> deserializeEach( ModuleDescriptor module, ValueType valueType, Iterable<String> states ) { return StreamSupport.stream( states.spliterator(), false ) .map( state -> deserialize( module, valueType, new StringReader( state ) ) ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, InputStream state ) { return deserialize( module, valueTypeOf( module, type ), state ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, Reader state ) { return deserialize( module, valueTypeOf( module, type ), state ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, InputStream state ) { return deserialize( module, valueTypeOf( module, type ), state ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, Reader state ) { return deserialize( module, valueTypeOf( module, type ), state ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, String state ) { return deserialize( module, valueTypeOf( module, type ), state ); }
@Override public <T> T deserialize( ModuleDescriptor module, Class<T> type, String state ) { return deserialize( module, valueTypeOf( module, type ), state ); }