11use std:: collections:: { BTreeMap , BTreeSet , VecDeque } ;
22use std:: fmt;
3+ use std:: num:: NonZeroUsize ;
34use std:: time:: Duration ;
45#[ cfg( not( target_arch = "wasm32" ) ) ]
56use std:: time:: Instant ;
@@ -17,7 +18,9 @@ use crate::data::{
1718 DataSourceInfo , EntryID , EntryIndex , EntryInfo , Field , FieldID , FieldSchema , ItemLink ,
1819 ItemMeta , ItemUID , SlotMetaTileData , SlotTileData , SummaryTileData , TileID , TileSet , UtilPoint ,
1920} ;
20- use crate :: deferred_data:: { CountingDeferredDataSource , DeferredDataSource , TileResult } ;
21+ use crate :: deferred_data:: {
22+ CountingDeferredDataSource , DeferredDataSource , LruDeferredDataSource , TileResult ,
23+ } ;
2124use crate :: timestamp:: {
2225 Interval , Timestamp , TimestampDisplay , TimestampParseError , TimestampUnits ,
2326} ;
@@ -165,7 +168,7 @@ struct Config {
165168 tile_set : TileSet ,
166169 warning_message : Option < String > ,
167170
168- data_source : CountingDeferredDataSource < Box < dyn DeferredDataSource > > ,
171+ data_source : CountingDeferredDataSource < LruDeferredDataSource < Box < dyn DeferredDataSource > > > ,
169172
170173 search_state : SearchState ,
171174
@@ -1438,7 +1441,10 @@ impl Config {
14381441 interval,
14391442 tile_set,
14401443 warning_message,
1441- data_source : CountingDeferredDataSource :: new ( data_source) ,
1444+ data_source : CountingDeferredDataSource :: new ( LruDeferredDataSource :: new (
1445+ data_source,
1446+ NonZeroUsize :: new ( 1024 ) . unwrap ( ) ,
1447+ ) ) ,
14421448 search_state,
14431449 items_selected : BTreeMap :: new ( ) ,
14441450 scroll_to_item : None ,
0 commit comments