File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed
Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -200,6 +200,17 @@ impl Record {
200200 self . header . as_ref ( )
201201 }
202202
203+ /// Translate the record to the given header.
204+ pub fn translate ( & mut self , dst_header : & mut Arc < HeaderView > ) -> Result < ( ) > {
205+ if unsafe { htslib:: bcf_translate ( dst_header. inner , self . header ( ) . inner , self . inner ) } == 0
206+ {
207+ self . set_header ( Arc :: clone ( dst_header) ) ;
208+ Ok ( ( ) )
209+ } else {
210+ Err ( Error :: BcfTranslate )
211+ }
212+ }
213+
203214 /// Set the record header.
204215 pub ( crate ) fn set_header ( & mut self , header : Arc < HeaderView > ) {
205216 self . header = header;
Original file line number Diff line number Diff line change @@ -135,6 +135,8 @@ pub enum Error {
135135 BcfRemoveAlleles ,
136136 #[ error( "failed to render BCF record as string" ) ]
137137 BcfToString ,
138+ #[ error( "failed to translate BCF/VCF record" ) ]
139+ BcfTranslate ,
138140
139141 #[ error( "invalid compression level {level}" ) ]
140142 BgzfInvalidCompressionLevel { level : i8 } ,
You can’t perform that action at this time.
0 commit comments