This commit is contained in:
parent
b68cb274da
commit
bc550be122
4 changed files with 17 additions and 104 deletions
32
Cargo.lock
generated
32
Cargo.lock
generated
|
|
@ -185,7 +185,6 @@ dependencies = [
|
|||
"libm",
|
||||
"mupdf-sys",
|
||||
"quick-xml",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -210,7 +209,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -257,36 +255,6 @@ version = "2.1.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
||||
dependencies = [
|
||||
"serde_core",
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_core"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shlex"
|
||||
version = "1.3.0"
|
||||
|
|
|
|||
|
|
@ -14,5 +14,4 @@ rust-version = "1.89.0"
|
|||
indexmap = "2.12.1"
|
||||
libm = "0.2.15"
|
||||
mupdf-sys = { version = "0.5.0", default-features = false }
|
||||
quick-xml = { version = "0.38.4", features = ["serialize"] }
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
quick-xml = "0.38.4"
|
||||
|
|
|
|||
81
src/lib.rs
81
src/lib.rs
|
|
@ -13,7 +13,6 @@ use mupdf_sys::{fz_matrix, fz_point, fz_text_item};
|
|||
use non_nan_float::NonNaNF32;
|
||||
use std::{
|
||||
backtrace::Backtrace,
|
||||
borrow::Cow,
|
||||
cell::RefCell,
|
||||
collections::{BTreeMap, BTreeSet, HashMap, HashSet},
|
||||
convert::Infallible,
|
||||
|
|
@ -154,6 +153,7 @@ macro_rules! make_enum_font {
|
|||
_ => None,
|
||||
}
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
fn new(font_name: &str, size: NonNaNF32) -> Self {
|
||||
if let Some(v) = Self::new_known(font_name, size) {
|
||||
v
|
||||
|
|
@ -610,9 +610,11 @@ struct Char {
|
|||
}
|
||||
|
||||
impl Char {
|
||||
#[allow(dead_code)]
|
||||
fn width(&self) -> f32 {
|
||||
self.max_x.get() - self.min_x.get()
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
fn height(&self) -> f32 {
|
||||
self.max_y.get() - self.min_y.get()
|
||||
}
|
||||
|
|
@ -634,6 +636,7 @@ const INSN_BIT_FIELDS_PREFIX_BOX_BOTTOM_TO_SUFFIX_TEXT_HEIGHT: f32 = 20.971;
|
|||
const INSN_BIT_FIELDS_TOP_PAD_HEIGHT: f32 = 20.175;
|
||||
const INSN_BIT_FIELDS_TOP_PAD_HEIGHT2: f32 = 14.694;
|
||||
const INSN_BIT_FIELDS_BOX_HEIGHT: f32 = 22.317;
|
||||
#[allow(dead_code)]
|
||||
const INSN_SP_REGS_ALTERED_REGISTER_COLUMN_X: f32 = 34.405;
|
||||
const INSN_SP_REGS_ALTERED_FIELDS_COLUMN_X: f32 = 86.692;
|
||||
const INSN_SP_REGS_ALTERED_FIELDS_CONDS_SPLIT_X: f32 = 188.74;
|
||||
|
|
@ -649,6 +652,7 @@ struct ParsedTextLine {
|
|||
}
|
||||
|
||||
impl ParsedTextLine {
|
||||
#[allow(dead_code)]
|
||||
fn regular_height(&self) -> f32 {
|
||||
self.regular_max_y - self.regular_min_y
|
||||
}
|
||||
|
|
@ -1522,6 +1526,7 @@ impl LineOrRect {
|
|||
Self::Rect(v) => v.width(),
|
||||
}
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
fn height(self) -> f32 {
|
||||
match self {
|
||||
Self::Line(v) => v.height(),
|
||||
|
|
@ -1606,6 +1611,7 @@ struct Page {
|
|||
qt: BTreeMap<TextSection, QuadTree<PageItem>>,
|
||||
unprocessed_chars:
|
||||
Rc<RefCell<BTreeMap<TextSection, Rc<RefCell<BTreeMap<Font, IndexSet<Char>>>>>>>,
|
||||
#[allow(dead_code)]
|
||||
unprocessed_non_text: Rc<RefCell<IndexSet<LineOrRect>>>,
|
||||
}
|
||||
|
||||
|
|
@ -3162,7 +3168,10 @@ impl<'ctx> Parser<'ctx> {
|
|||
Some(header_text) if header_text == "Special Registers Altered:" => {
|
||||
let new_sp_regs_altered =
|
||||
self.extract_insn_sp_regs_altered(desc_line)?;
|
||||
next_start_min_y = new_sp_regs_altered.final_regular_min_y;
|
||||
#[allow(unused_assignments)]
|
||||
{
|
||||
next_start_min_y = new_sp_regs_altered.final_regular_min_y;
|
||||
}
|
||||
sp_regs_altered = Some(new_sp_regs_altered);
|
||||
break;
|
||||
}
|
||||
|
|
@ -3671,74 +3680,6 @@ impl<'ctx> mupdf_ffi::DeviceCallbacks<'ctx> for MyDevice<'_> {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
enum MuPdfXml<'a> {
|
||||
#[serde(rename = "page")]
|
||||
Page(MuPdfXmlPage<'a>),
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
struct MuPdfXmlPage<'a> {
|
||||
#[serde(rename = "@id")]
|
||||
id: Cow<'a, str>,
|
||||
#[serde(rename = "@width")]
|
||||
width: f32,
|
||||
#[serde(rename = "@height")]
|
||||
height: f32,
|
||||
block: Vec<MuPdfXmlBlock<'a>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
struct MuPdfXmlBlock<'a> {
|
||||
#[serde(rename = "@bbox")]
|
||||
bbox: [f32; 4],
|
||||
#[serde(rename = "@justify")]
|
||||
justify: Cow<'a, str>,
|
||||
line: Vec<MuPdfXmlLine<'a>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
struct MuPdfXmlLine<'a> {
|
||||
#[serde(rename = "@bbox")]
|
||||
bbox: [f32; 4],
|
||||
#[serde(rename = "@wmode")]
|
||||
wmode: u8,
|
||||
#[serde(rename = "@dir")]
|
||||
dir: [f32; 2],
|
||||
#[serde(rename = "@text")]
|
||||
text: Cow<'a, str>,
|
||||
font: Vec<MuPdfXmlFont<'a>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
struct MuPdfXmlFont<'a> {
|
||||
#[serde(rename = "@name")]
|
||||
name: Cow<'a, str>,
|
||||
#[serde(rename = "@size")]
|
||||
size: f32,
|
||||
char: Vec<MuPdfXmlChar<'a>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, Debug)]
|
||||
struct MuPdfXmlChar<'a> {
|
||||
#[serde(rename = "@quad")]
|
||||
quad: [f32; 8],
|
||||
#[serde(rename = "@x")]
|
||||
x: f32,
|
||||
#[serde(rename = "@y")]
|
||||
y: f32,
|
||||
#[serde(rename = "@bidi")]
|
||||
bidi: u16,
|
||||
#[serde(rename = "@color")]
|
||||
color: Cow<'a, str>,
|
||||
#[serde(rename = "@alpha")]
|
||||
alpha: Cow<'a, str>,
|
||||
#[serde(rename = "@flags")]
|
||||
flags: u32,
|
||||
#[serde(rename = "@c")]
|
||||
c: Cow<'a, str>,
|
||||
}
|
||||
|
||||
impl Page {
|
||||
fn from_mupdf_page(
|
||||
page_num: u32,
|
||||
|
|
|
|||
|
|
@ -765,6 +765,7 @@ pub(crate) enum WriteMode {
|
|||
}
|
||||
|
||||
impl<'a, 'ctx> TextSpanRef<'a, 'ctx> {
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn get(self) -> &'a UnsafeCell<fz_text_span> {
|
||||
self.ptr
|
||||
}
|
||||
|
|
@ -802,6 +803,7 @@ pub(crate) struct FontRef<'a, 'ctx> {
|
|||
}
|
||||
|
||||
impl<'a, 'ctx> FontRef<'a, 'ctx> {
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn get(self) -> &'a UnsafeCell<fz_font> {
|
||||
self.ptr
|
||||
}
|
||||
|
|
@ -810,9 +812,11 @@ impl<'a, 'ctx> FontRef<'a, 'ctx> {
|
|||
.to_str()
|
||||
.expect("font name isn't valid UTF-8")
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn is_bold(self) -> bool {
|
||||
unsafe { fz_font_is_bold(self.ctx.0.get(), self.ptr.get()) != 0 }
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn is_italic(self) -> bool {
|
||||
unsafe { fz_font_is_italic(self.ctx.0.get(), self.ptr.get()) != 0 }
|
||||
}
|
||||
|
|
@ -824,6 +828,7 @@ impl<'a, 'ctx> FontRef<'a, 'ctx> {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn transform_point(point: fz_point, m: fz_matrix) -> fz_point {
|
||||
unsafe { fz_transform_point(point, m) }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue