Skip to content

Commit 98904e7

Browse files
ADD: Add OCEA Publisher definition
1 parent 61d1dec commit 98904e7

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
different methods of splitting DBN files
1212
- Added split support to the CLI. For example:
1313
`dbn mbo.dbn --split-by week --output-pattern '{date}.json'` --json
14+
- Added new publisher for Blue Ocean ATS (`OCEA_MEMOIR_OCEA`)
1415

1516
## 0.47.0 - 2026-01-20
1617

‎rust/dbn/src/publishers.rs‎

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,12 @@ pub enum Venue {
117117
Xeee = 51,
118118
/// Cboe Futures Exchange
119119
Xcbf = 52,
120+
/// Blue Ocean ATS
121+
Ocea = 53,
120122
}
121123

122124
/// The number of [`Venue`] variants.
123-
pub const VENUE_COUNT: usize = 52;
125+
pub const VENUE_COUNT: usize = 53;
124126

125127
impl Venue {
126128
/// Converts the venue to its `str` representation.
@@ -178,6 +180,7 @@ impl Venue {
178180
Self::Xeur => "XEUR",
179181
Self::Xeee => "XEEE",
180182
Self::Xcbf => "XCBF",
183+
Self::Ocea => "OCEA",
181184
}
182185
}
183186
}
@@ -251,6 +254,7 @@ impl std::str::FromStr for Venue {
251254
"XEUR" => Ok(Self::Xeur),
252255
"XEEE" => Ok(Self::Xeee),
253256
"XCBF" => Ok(Self::Xcbf),
257+
"OCEA" => Ok(Self::Ocea),
254258
_ => Err(Error::conversion::<Self>(s)),
255259
}
256260
}
@@ -345,10 +349,12 @@ pub enum Dataset {
345349
XeeeEobi = 39,
346350
/// Cboe Futures Exchange PITCH
347351
XcbfPitch = 40,
352+
/// Blue Ocean ATS MEMOIR Depth
353+
OceaMemoir = 41,
348354
}
349355

350356
/// The number of [`Dataset`] variants.
351-
pub const DATASET_COUNT: usize = 40;
357+
pub const DATASET_COUNT: usize = 41;
352358

353359
impl Dataset {
354360
/// Converts the dataset to its `str` representation.
@@ -396,6 +402,7 @@ impl Dataset {
396402
Self::XeurEobi => "XEUR.EOBI",
397403
Self::XeeeEobi => "XEEE.EOBI",
398404
Self::XcbfPitch => "XCBF.PITCH",
405+
Self::OceaMemoir => "OCEA.MEMOIR",
399406
}
400407
}
401408

@@ -519,6 +526,7 @@ impl Dataset {
519526
Self::XeurEobi => &[Publisher::XeurEobiXeur, Publisher::XeurEobiXoff],
520527
Self::XeeeEobi => &[Publisher::XeeeEobiXeee, Publisher::XeeeEobiXoff],
521528
Self::XcbfPitch => &[Publisher::XcbfPitchXcbf, Publisher::XcbfPitchXoff],
529+
Self::OceaMemoir => &[Publisher::OceaMemoirOcea],
522530
}
523531
}
524532
}
@@ -582,6 +590,7 @@ impl std::str::FromStr for Dataset {
582590
"XEUR.EOBI" => Ok(Self::XeurEobi),
583591
"XEEE.EOBI" => Ok(Self::XeeeEobi),
584592
"XCBF.PITCH" => Ok(Self::XcbfPitch),
593+
"OCEA.MEMOIR" => Ok(Self::OceaMemoir),
585594
_ => Err(Error::conversion::<Self>(s)),
586595
}
587596
}
@@ -806,10 +815,12 @@ pub enum Publisher {
806815
XcbfPitchXcbf = 105,
807816
/// Cboe Futures Exchange - Off-Market Trades
808817
XcbfPitchXoff = 106,
818+
/// Blue Ocean ATS MEMOIR
819+
OceaMemoirOcea = 107,
809820
}
810821

811822
/// The number of [`Publisher`] variants.
812-
pub const PUBLISHER_COUNT: usize = 106;
823+
pub const PUBLISHER_COUNT: usize = 107;
813824

814825
impl Publisher {
815826
/// Converts the publisher to its `str` representation.
@@ -921,6 +932,7 @@ impl Publisher {
921932
Self::XeeeEobiXoff => "XEEE.EOBI.XOFF",
922933
Self::XcbfPitchXcbf => "XCBF.PITCH.XCBF",
923934
Self::XcbfPitchXoff => "XCBF.PITCH.XOFF",
935+
Self::OceaMemoirOcea => "OCEA.MEMOIR.OCEA",
924936
}
925937
}
926938

@@ -1033,6 +1045,7 @@ impl Publisher {
10331045
Self::XeeeEobiXoff => Venue::Xoff,
10341046
Self::XcbfPitchXcbf => Venue::Xcbf,
10351047
Self::XcbfPitchXoff => Venue::Xoff,
1048+
Self::OceaMemoirOcea => Venue::Ocea,
10361049
}
10371050
}
10381051

@@ -1145,6 +1158,7 @@ impl Publisher {
11451158
Self::XeeeEobiXoff => Dataset::XeeeEobi,
11461159
Self::XcbfPitchXcbf => Dataset::XcbfPitch,
11471160
Self::XcbfPitchXoff => Dataset::XcbfPitch,
1161+
Self::OceaMemoirOcea => Dataset::OceaMemoir,
11481162
}
11491163
}
11501164

@@ -1260,6 +1274,7 @@ impl Publisher {
12601274
(Dataset::XeeeEobi, Venue::Xoff) => Ok(Self::XeeeEobiXoff),
12611275
(Dataset::XcbfPitch, Venue::Xcbf) => Ok(Self::XcbfPitchXcbf),
12621276
(Dataset::XcbfPitch, Venue::Xoff) => Ok(Self::XcbfPitchXoff),
1277+
(Dataset::OceaMemoir, Venue::Ocea) => Ok(Self::OceaMemoirOcea),
12631278
_ => Err(Error::conversion::<Self>(format!("({dataset}, {venue})"))),
12641279
}
12651280
}
@@ -1388,6 +1403,7 @@ impl std::str::FromStr for Publisher {
13881403
"XEEE.EOBI.XOFF" => Ok(Self::XeeeEobiXoff),
13891404
"XCBF.PITCH.XCBF" => Ok(Self::XcbfPitchXcbf),
13901405
"XCBF.PITCH.XOFF" => Ok(Self::XcbfPitchXoff),
1406+
"OCEA.MEMOIR.OCEA" => Ok(Self::OceaMemoirOcea),
13911407
_ => Err(Error::conversion::<Self>(s)),
13921408
}
13931409
}

0 commit comments

Comments
 (0)