pub struct BBClient {
pub cache_folder: PathBuf,
pub bedbase_api: String,
/* private fields */
}Expand description
Client for managing BED file and BED set caching from BEDbase.
BBClient provides a high-level interface for:
- Downloading and caching BED files from the BEDbase API
- Managing local BED file collections
- Organizing BED sets (collections of related BED files)
- Querying and removing cached resources
The client maintains two separate caches:
- bedfile_cache: Individual BED files (stored as
.bed.gz) - bedset_cache: BED set metadata files (stored as
.txtwith lists of BED IDs)
§Examples
use gtars_bbcache::client::BBClient;
// Create a client with default settings
let mut client = BBClient::builder().finish()?;
// Download and cache a BED file from BEDbase
let region_set = client.load_bed("6b2e163a1d4319d99bd465c6c78a9741")?;
// Check if file exists in cache
let path = client.seek("6b2e163a1d4319d99bd465c6c78a9741")?;
println!("Cached at: {:?}", path);
// List all cached BED files
let beds = client.list_beds()?;
println!("Found {} cached BED files", beds.len());
// Remove from cache
client.remove("6b2e163a1d4319d99bd465c6c78a9741")?;Fields§
§cache_folder: PathBufPath to the root cache directory
bedbase_api: StringBEDbase API endpoint URL
Implementations§
Source§impl BBClient
impl BBClient
Sourcepub fn builder() -> BBClientBuilder
pub fn builder() -> BBClientBuilder
Creates a new builder for constructing a BBClient.
The builder pattern allows you to configure the cache folder and API endpoint before creating the client instance.
§Examples
use gtars_bbcache::client::BBClient;
use std::path::PathBuf;
let client = BBClient::builder()
.with_cache_folder(PathBuf::from("/tmp/bbcache"))
.finish()?;Sourcepub fn load_bedset(&mut self, bedset_id: &str) -> Result<RegionSetList>
pub fn load_bedset(&mut self, bedset_id: &str) -> Result<RegionSetList>
Sourcepub fn add_local_bed_to_cache(
&mut self,
bedfile: PathBuf,
force: Option<bool>,
) -> Result<String>
pub fn add_local_bed_to_cache( &mut self, bedfile: PathBuf, force: Option<bool>, ) -> Result<String>
Sourcepub fn add_regionset_to_cache(
&mut self,
regionset: RegionSet,
force: Option<bool>,
) -> Result<String>
pub fn add_regionset_to_cache( &mut self, regionset: RegionSet, force: Option<bool>, ) -> Result<String>
Sourcepub fn add_bedset_to_cache(&mut self, bedset: RegionSetList) -> Result<String>
pub fn add_bedset_to_cache(&mut self, bedset: RegionSetList) -> Result<String>
Sourcepub fn add_local_folder_as_bedset(
&mut self,
folder_path: PathBuf,
) -> Result<String>
pub fn add_local_folder_as_bedset( &mut self, folder_path: PathBuf, ) -> Result<String>
Sourcepub fn add_local_file_as_bedset(&mut self, file_path: PathBuf) -> Result<String>
pub fn add_local_file_as_bedset(&mut self, file_path: PathBuf) -> Result<String>
Sourcepub fn remove(&mut self, identifier: &str) -> Result<()>
pub fn remove(&mut self, identifier: &str) -> Result<()>
Remove a BED file or BED set from the cache folder as well as biocfilcache (SQLite)
§Arguments
- identifier: the identifier of BED file / BED set to be removed
Auto Trait Implementations§
impl !RefUnwindSafe for BBClient
impl !Sync for BBClient
impl !UnwindSafe for BBClient
impl Freeze for BBClient
impl Send for BBClient
impl Unpin for BBClient
impl UnsafeUnpin for BBClient
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Add an aggregate function filter Read more
Source§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Add an aggregate function order Read more
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
Convert
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
Convert
&self to an expression for Diesel’s query builder. Read moreSource§impl<T> WindowExpressionMethods for T
impl<T> WindowExpressionMethods for T
Source§fn over(self) -> Self::Outputwhere
Self: OverDsl,
fn over(self) -> Self::Outputwhere
Self: OverDsl,
Turn a function call into a window function call Read more
Source§fn window_filter<P>(self, f: P) -> Self::Output
fn window_filter<P>(self, f: P) -> Self::Output
Add a filter to the current window function Read more
Source§fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
Add a partition clause to the current window function Read more
Source§fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
Add a order clause to the current window function Read more