use crate::position::Position;
use serde::Serialize;
use smartstring::alias::String;
use std::default;
#[derive(Debug, Serialize, Default)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub struct RangePositions {
#[serde(rename = "REF")]
pub ref_seq: String,
pub pos: u32,
pub end: u32,
pub depth: u32,
}
impl Position for RangePositions {
fn new(ref_seq: String, pos: u32) -> Self {
RangePositions {
ref_seq,
pos,
..default::Default::default()
}
}
}
#[derive(Debug, Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct BedFormatRangePositions {
pub chrom: String,
pub chrom_start: u32,
pub chrom_end: u32,
pub name: String,
pub score: u32,
}
impl From<RangePositions> for BedFormatRangePositions {
fn from(orig: RangePositions) -> Self {
BedFormatRangePositions {
chrom: orig.ref_seq,
chrom_start: orig.pos,
chrom_end: orig.end,
name: String::from(""),
score: orig.depth,
}
}
}