#![deny(missing_docs)]
#[cfg(feature = "linebased")]
mod lex;
#[cfg(feature = "linebased")]
pub mod linebased;
#[cfg(all(feature = "deb822", feature = "linebased"))]
mod convert;
#[cfg(feature = "deb822")]
pub mod deb822;
#[cfg(all(feature = "discover", any(feature = "linebased", feature = "deb822")))]
pub mod discover;
pub mod mangle;
#[cfg(feature = "pgp")]
pub mod pgp;
pub mod release;
pub mod search;
#[cfg(feature = "deb822")]
pub mod templates;
pub const DEFAULT_VERSION: u32 = 1;
#[cfg(any(feature = "linebased", feature = "deb822"))]
pub mod parse;
pub mod subst;
mod types;
pub const DEFAULT_USER_AGENT: &str = concat!("debian-watch-rs/", env!("CARGO_PKG_VERSION"));
pub use release::Release;
pub use types::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[allow(non_camel_case_types, missing_docs, clippy::upper_case_acronyms)]
#[repr(u16)]
pub enum SyntaxKind {
KEY = 0,
VALUE,
EQUALS,
QUOTE,
COMMA,
CONTINUATION,
NEWLINE,
WHITESPACE, COMMENT, ERROR,
ROOT, VERSION, ENTRY, OPTS_LIST, OPTION, OPTION_SEPARATOR, URL, MATCHING_PATTERN, VERSION_POLICY, SCRIPT, }
impl From<SyntaxKind> for rowan::SyntaxKind {
fn from(kind: SyntaxKind) -> Self {
Self(kind as u16)
}
}
#[cfg(all(feature = "deb822", feature = "linebased"))]
pub use crate::convert::{convert_to_v5, ConversionError};
#[cfg(all(test, feature = "linebased"))]
mod tests {
use crate::linebased::WatchFile;
#[test]
fn test_create_watchfile() {
let wf = WatchFile::new(None);
assert_eq!(wf.version(), super::DEFAULT_VERSION);
assert_eq!("", wf.to_string());
let wf = WatchFile::new(Some(4));
assert_eq!(wf.version(), 4);
assert_eq!("version=4\n", wf.to_string());
}
#[test]
fn test_set_version() {
let mut wf = WatchFile::new(Some(4));
assert_eq!(wf.version(), 4);
wf.set_version(5);
assert_eq!(wf.version(), 5);
assert_eq!("version=5\n", wf.to_string());
let mut wf = WatchFile::new(None);
assert_eq!(wf.version(), super::DEFAULT_VERSION);
wf.set_version(4);
assert_eq!(wf.version(), 4);
assert_eq!("version=4\n", wf.to_string());
}
#[test]
fn test_set_version_on_parsed() {
let mut wf: WatchFile = "version=4\n".parse().unwrap();
assert_eq!(wf.version(), 4);
wf.set_version(5);
assert_eq!(wf.version(), 5);
assert_eq!("version=5\n", wf.to_string());
let mut wf: WatchFile = "".parse().unwrap();
assert_eq!(wf.version(), super::DEFAULT_VERSION);
wf.set_version(4);
assert_eq!(wf.version(), 4);
assert_eq!("version=4\n", wf.to_string());
}
}