deepbiop_fa/encode/
option.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3use std::fmt::{self, Display, Formatter};
4
5use pyo3::prelude::*;
6use pyo3_stub_gen::derive::*;
7
8pub const BASES: &[u8] = b"ATCGN";
9
10#[gen_stub_pyclass]
27#[pyclass(module = "deepbiop.fa")]
28#[derive(Debug, Builder, Default, Clone, Serialize, Deserialize)]
29pub struct EncoderOption {
30 #[pyo3(get, set)]
31 #[builder(default = "BASES.to_vec()")]
32 pub bases: Vec<u8>,
33}
34
35#[gen_stub_pymethods]
36#[pymethods]
37impl EncoderOption {
38 #[new]
39 #[pyo3(signature = (bases))]
40 fn py_new(bases: String) -> Self {
41 EncoderOptionBuilder::default()
42 .bases(bases.as_bytes().to_vec())
43 .build()
44 .expect("Failed to build FqEncoderOption from Python arguments.")
45 }
46}
47
48impl Display for EncoderOption {
49 fn fmt(&self, f: &mut Formatter) -> fmt::Result {
50 write!(f, "FaEncoderOption {{ bases: {:?} }}", self.bases)
51 }
52}