///|
pub(all) enum StructureLevelKind {
SupportLevel
ResistanceLevel
MidlineLevel
} derive(Debug, Eq, ToJson, FromJson)
///|
pub(all) struct StructureLevel {
kind : StructureLevelKind
price : Double
touches : Int
latest_seq : Int
label : String
} derive(Debug, Eq, ToJson, FromJson)
///|
pub(all) struct StructureLevelFrame {
source_id : SourceId
support_levels : Array[StructureLevel]
resistance_levels : Array[StructureLevel]
midline : StructureLevel?
summary : String
} derive(Debug, Eq, ToJson, FromJson)
///|
pub fn structure_level(
kind : StructureLevelKind,
price : Double,
touches : Int,
latest_seq : Int,
label : String,
) -> StructureLevel {
{ kind, price, touches, latest_seq, label }
}
///|
pub fn structure_level_frame(
source_id : SourceId,
support_levels : Array[StructureLevel],
resistance_levels : Array[StructureLevel],
midline? : StructureLevel,
summary? : String = "",
) -> StructureLevelFrame {
{ source_id, support_levels, resistance_levels, midline, summary }
}