rust_sasa/structures/
atomic.rs1#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct NeighborData {
8 pub threshold_squared: f32,
9 pub idx: u32,
10}
11
12#[derive(Clone)]
14#[repr(C)]
15pub struct Atom {
16 pub position: [f32; 3],
18 pub radius: f32,
20 pub id: usize,
22 pub parent_id: Option<isize>,
24}
25
26#[derive(Debug, PartialEq)]
27#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
28pub struct ChainResult {
29 pub name: String,
31 pub value: f32,
33}
34
35#[derive(Debug, PartialEq)]
36#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
37pub struct ResidueResult {
38 pub serial_number: isize,
40 pub insertion_code: String,
42 pub value: f32,
44 pub name: String,
46 pub is_polar: bool,
48 pub chain_id: String,
50}
51
52#[derive(Debug, PartialEq)]
53#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
54pub struct ProteinResult {
55 pub global_total: f32,
57 pub polar_total: f32,
59 pub non_polar_total: f32,
61}
62
63#[derive(Debug, PartialEq)]
64#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
65pub enum SASAResult {
66 Atom(Vec<f32>),
67 Residue(Vec<ResidueResult>),
68 Chain(Vec<ChainResult>),
69 Protein(ProteinResult),
70}